【问题标题】:Export dask groups to csv将 dask 组导出到 csv
【发布时间】:2018-08-08 19:52:07
【问题描述】:

我有一个大文件。它有 40,955,924 行,大于 13GB。我需要能够根据单个字段将此文件分成单独的文件,如果我使用的是pd.DataFrame,我会使用这个:

for k, v in df.groupby(['id']):
    v.to_csv(k, sep='\t', header=True, index=False)

但是,我收到错误 KeyError: 'Column not found: 0' Iterate over GroupBy object in dask 上的此特定错误的解决方案,但这需要使用 pandas 来存储数据帧的副本,而我不能这样做。任何有关拆分此文件的帮助将不胜感激。

【问题讨论】:

    标签: python pandas pandas-groupby dask


    【解决方案1】:

    您想为此使用apply()

    def do_to_csv(df):
        df.to_csv(df.name, sep='\t', header=True, index=False)
        return df
    
    df.groupby(['id']).apply(do_to_csv, meta=df._meta).size.compute()
    

    注意 - 组密钥存储在数据框name - 我们返回数据帧并提供meta;这并不是真正必要的,但是您需要在 something 上进行计算,并且准确地知道那是什么很方便 - 最终输出将是写入的行数。

    【讨论】:

    • 谢谢你的解决方案,最后我用awk '{ out=$4".txt"; print >> out; close(out) }' file.txt跑了一夜。
    猜你喜欢
    • 1970-01-01
    • 2018-08-31
    • 2018-04-15
    • 2019-12-23
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多