如何在保留重复索引的同时合并pandas DataFrame列表?

时间:2018-06-01 19:04:46

标签: pandas dataframe merge concatenation

我有许多DataFrame的列表。每个DataFrame是一组对应于时间戳的各种度量。由于许多测量可以对应于同一时刻,因此DataFrames的时间索引中有许多重复的索引条目。

我想合并这个DataFrames列表,显然要保留重复的索引。如何才能做到这一点?我已经检查了this question,但解决方案适用于仅合并两个DataFrame的情况,而不是许多DataFrame的列表。 concat功能显然cannot handle重复索引。

1 个答案:

答案 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