我正在尝试使用dask将大型csv文件(9GB)分成几组,然后将每个组复制到单独的csv文件中。
这就是我要用熊猫做的事情
gb2 = df2.groupby('Type')
n = [gb2.get_group(x) for x in gb2.groups]
n[0].to_csv("FileByType 1.csv",index=False)
进行了一些研究,这是我在网上看到的解决方案
df = dd.read_csv(filename)
def Group(df, col):
m = []
for group in df[col].unique().compute():
m.append(df.groupby(col).get_group(group))
return m
grps = Split(file, "Types")
count = 0
for i in grps:
count = count+1
i.compute().to_csv(str(count) + " FileByTypes.csv", index=False)
这是我尝试解决方案时不断收到的错误消息。关键错误是我要分组的列名称的第一个字母。
_get_grouper中的C:\ ProgramData \ Anaconda3 \ lib \ site-packages \ pandas \ core \ groupby \ groupby.py(obj,键,轴,级别,排序,观察,变异,验证)
3289 in_axis,名称,级别,gpr = False,无,gpr,无
3290其他:
-> 3291引发KeyError(gpr)
3292 elif isinstance(gpr,Grouper)和gpr.key不是None:
3293#将密钥添加到排除项
KeyError:'T'
我到了这一点,因为我在一个较小的文件上尝试过,但是当我在9GB的大文件上尝试时,它会永远持续下去,因为它必须先计算 (用于df [col] .unique()。compute():中的组)
非常感谢您的帮助!