繁体   English   中英

如何合并具有不同时间戳密度的两个熊猫数据帧?

[英]How to combine two pandas Dataframes with different timestamp densities?

我有几个熊猫数据框df1,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

我不确定是否将它们正确地输入了单词,因此我需要将这些数据文件合并为一个,其中只有一个时间戳列,而其他列将包含测量值。 我正在考虑将时间戳记以最小的增量并将其他行插入其各自位置的事情。 对于包含一个度量但不包含另一个度量的时间戳记值,它将把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

那我该怎么做呢? 任何建议或意见,高度赞赏。

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

                    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将按时间顺序排列时间戳。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM