将 dask 组导出到 csv
Export dask groups to csv
我有一个大文件。它有 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'
上有针对此特定错误的解决方案,但这需要使用 pandas 来存储数据帧的副本,我无法做到。非常感谢任何有关拆分此文件的帮助。
您想为此使用 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
- 我们 return 支持数据帧并提供 meta
;这并不是真正必要的,但您需要计算 某物 并且很容易确切地知道那东西是什么
- 最终输出将是写入的行数。
我有一个大文件。它有 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'
您想为此使用 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
- 我们 return 支持数据帧并提供 meta
;这并不是真正必要的,但您需要计算 某物 并且很容易确切地知道那东西是什么
- 最终输出将是写入的行数。