如何将两个具有不同时间戳密度的pandas Dataframes合并?

2024-10-05 14:25:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有几个pandas Dataframesdf1,df2,df3...每个都包含一列时间戳和一列相应的值。例如:

df1型:

2015-01-01T15:41:10.500Z, 9239.337890625
2015-01-01T15:41:50.543Z, 9539.337890625
2015-01-01T15:42:30.600Z, 8957.0458984375
2015-01-01T15:43:00.606Z, 8237.0458984375

df2型:

2015-01-01T01:41:43.900Z, 67.58499908447266
2015-01-01T01:42:43.918Z, 67.58499908447266
2015-01-01T02:43:37.800Z, 67.58200073242189
2015-01-01T02:44:37.825Z, 67.58200073242189

我不确定我是否正确地将这些数据放到单词中,所以我需要将这些数据文件组合成一个只有一个timestamp列的列,其他列将包含度量值。我正在考虑一种方法,它以最小的增量获取时间戳,并将其他行插入到它们各自的位置。对于包含一个度量值而不包含另一个度量值的时间戳值,它将放置Nan或将其保持为空。 预期输出如下:

timestamp                 value1             value2 ...
2015-01-01T15:41:10.500Z, 9239.337890625 
2015-01-01T01:41:43.900Z,                    67.58499908447266
2015-01-01T15:41:50.543Z, 9539.337890625
2015-01-01T15:42:30.600Z, 8957.0458984375
2015-01-01T01:42:43.918Z,                    67.58499908447266
2015-01-01T15:43:00.606Z, 8237.0458984375

那我该怎么做呢?如有任何建议或意见,我们将不胜感激。你知道吗


Tags: 数据方法pandas度量数据文件时间nan单词
1条回答
网友
1楼 · 发布于 2024-10-05 14:25:44

如果时间戳是它们自己的列

                    timestamp            value1
0    2015-01-01T15:41:10.500Z    9239.337890625
1    2015-01-01T15:41:50.543Z    9539.337890625
2    2015-01-01T15:42:30.600Z    8957.0458984375
3    2015-01-01T15:43:00.606Z    8237.0458984375

使用

df_all = pd.concat([df1, df2, df3, ...], ignore_index = True)
df_all.sort_values(by='timestamp', inplace = True)

ignore_index=True告诉pandas忘记原始数据帧中的索引,并根据新数据帧中的顺序创建新索引。你知道吗

如果时间戳是索引

                                     value1
2015-01-01T15:41:10.500Z    9239.337890625
2015-01-01T15:41:50.543Z    9539.337890625
2015-01-01T15:42:30.600Z    8957.0458984375
2015-01-01T15:43:00.606Z    8237.0458984375

使用

df_all = pd.concat([df1, df2, df3, ...])
df_all.sort_index(inplace = True)

sort_valuessort_index将按时间顺序排列时间戳。你知道吗

相关问题 更多 >