我有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')
注意:传递DataFrames的生成器而不是列表可能更有效.
例如:
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
.
如果“日期”是一列,您可以先使用set_index
:
df1.set_index('Date', inplace=True)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。