pandas 在巨大的 csv 的每一列中查找唯一元素的数量
pandas find number of unique elements in each column of huge csv
我有一个大约 10 GB 的巨大 csv 文件,如果我尝试加载到内存中,我会收到错误消息。
我需要计算数据框每一列的唯一元素的数量。我怎样才能做到这一点?
您可以依次加载每个列,然后调用 .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 的文件中一次加载单个列
我有一个大约 10 GB 的巨大 csv 文件,如果我尝试加载到内存中,我会收到错误消息。
我需要计算数据框每一列的唯一元素的数量。我怎样才能做到这一点?
您可以依次加载每个列,然后调用 .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 的文件中一次加载单个列