pandas在巨大的csv的每一列中找到了许多独特的元素

时间:2015-04-17 13:57:05

标签: csv pandas bigdata

我有一个大约10 GB的巨大csv文件,如果我尝试加载内存,我会收到错误。

我需要为数据帧的每一列计算唯一元素的数量。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以依次加载每个col,然后调用.nunique

In [227]:

import io
t="""a,b,c
0,1,1
0,2,1
1,3,1
2,4,1
3,5,6"""
# get the columns first
cols = pd.read_csv(io.StringIO(t), nrows=1).columns
​
d = {}
for col in cols:
    df = pd.read_csv(io.StringIO(t), usecols=col)
    d[col] = df[col].nunique()
d
Out[227]:
{'a': 4, 'b': 5, 'c': 2}

然后应该生成每列唯一值的数量

这假设您可以处理从10GB文件

一次加载单个列