![](/img/trans.png)
[英]How to combine two pandas dataframes with different length based on their row values
[英]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_values
和sort_index
將按時間順序排列時間戳。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.