我有许多DataFrame的列表。每个DataFrame是一组对应于时间戳的各种度量。由于许多测量可以对应于同一时刻,因此DataFrames的时间索引中有许多重复的索引条目。
我想合并这个DataFrames列表,显然要保留重复的索引。如何才能做到这一点?我已经检查了this question,但解决方案适用于仅合并两个DataFrame的情况,而不是许多DataFrame的列表。 concat
功能显然cannot handle重复索引。
答案 0 :(得分:0)
请参阅@HarvIpan评论:这是正确的。您可以在列表中连接一个pandas数据帧:
import pandas as pd
df = pd.DataFrame({'a':[1,2,3],'b':['a','b','c']})
df.set_index('a', inplace=True)
df2 = pd.DataFrame({'a':[1,2,3],'b':['d','e','f']})
df2.set_index('a', inplace=True)
df3 = pd.DataFrame({'a':[1,2,3],'c':['g','e','h']})
df3.set_index('a', inplace=True)
list_of_dfs = [df,df2,df3]
pd.concat(list_of_dfs, sort=False)
b c
a
1 a NaN
2 b NaN
3 c NaN
1 d NaN
2 e NaN
3 f NaN
1 NaN g
2 NaN e
3 NaN h