【问题标题】:Pandas: Merging multiple very large dataframes (too slow)Pandas:合并多个非常大的数据帧(太慢)
【发布时间】:2020-05-21 05:54:59
【问题描述】:

我有 100 个文件要合并,每个文件有 1 亿行以索引为键。每个的列数只有 2。 我曾尝试使用 pandas 将它们合并在一起,但似乎加入或合并超过 1000 万行 dataframe 非常慢。 是否有其他有效的方法将数据组合在一起?内存不是问题,我使用的是 256GByte 内存服务器。

filenames = ['fn1', 'fn2', 'fn3', 'fn4',....]
dfs = [pd.read_csv(filename, index_col=index_col) for filename in filenames)]
dfs[0].join(dfs[1:])

我放弃了使用pandas 来合并数据。相反,我使用hash table 合并数据并将数据转换为Dataframe。

【问题讨论】:

    标签: python pandas dataframe merge


    【解决方案1】:

    尝试将读取的 CSV 提供给pd.concat(),它可能会更快:

    filenames = ['fn1', 'fn2', 'fn3', 'fn4',....]
    df = pd.concat([pd.read_csv(filename, index_col=index_col) for filename in filenames)], axis=1)
    

    【讨论】:

      猜你喜欢
      • 2023-04-06
      • 1970-01-01
      • 2021-02-01
      • 2014-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多