python - 如何有效地将 Pandas 中的相似数据框组合成一个巨大的数据框

标签 python pandas time-series

我有 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/

相关文章:

javascript - 根据 CSA 法规迁移 Stripe checkout

r - 从 R 的 Johansen 程序 (ca.jo) 摘要中提取信息

python - Django:更新或更改以前保存的模型数据

python - 在 Odoo 9 中创建自定义操作

python - 遍历行以查看哪个值先出现

python - 在 pandas/Python 中不间断地计算连续值

python - 忽略零值并继续在 Python Pandas 中计算

python - 按总和日期分组,并用过去日期中的事故填充所有缺失值,直到计数 = 1

r - 使用 ggplot 记录计数的时间序列

python - Selenium 服务器无法与 HTMLUnit 创建 session