我有 7000 个带列的数据框
Date, X_1
Date, X_2
...
每个数据框大约有 2500 行。
日期有时会重叠,但不保证一定会重叠。
我想将它们组合成表单的数据框
Date X_1 X_2 etc.
我尝试应用 combine_first
7000 次,但它真的很慢,因为它必须创建 7000 个新对象,每个都比上一个略大。
是否有更有效的方法来组合多个数据帧?
最佳答案
假设 Date 是索引而不是列,那么您可以执行“外部”join
:
df1.join([df2, df3, ..., df7000], how='outer')
注意:传入 DataFrame 生成器而不是列表可能更有效。
例如:
df1 = pd.DataFrame([[1, 2]], columns=['a', 'b'])
df2 = pd.DataFrame([[3, 4]], index=[1], columns=['c', 'd'])
df3 = pd.DataFrame([[5, 6], [7, 8]], columns=['e', 'f'])
In [4]: df1.join([df2, df3], how='outer')
Out[4]:
a b c d e f
0 1 2 NaN NaN 5 6
1 NaN NaN 3 4 7 8
.
如果 'Date'
是您可以使用的列 set_index
第一:
df1.set_index('Date', inplace=True)
关于python - 如何有效地将 Pandas 中的相似数据框组合成一个巨大的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14655172/