我有一个大约10 GB的巨大csv文件,如果我尝试加载内存,我会收到错误。
我需要为数据帧的每一列计算唯一元素的数量。我怎样才能做到这一点?
答案 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文件
一次加载单个列