使用 pandas 对列中的项目进行计数

count items in a column using pandas

来自 DDBB 的 csv 文件。一列中的某些行覆盖了一个项目。我想计算列中每一行的每个项目

例如;一列中的一行有四项:

column1, column2, column3, column4
aaa, bbb,ccc,ddd ddd ddd ddd, eee
bbb, ccc,eee, ddd, eee
fff, ccc, eee,ddd, eee

df["column3"].value_counts() 必须是 6

df["column3"].str.split('\n', expand=True) 无效

拆分后可以对结果的长度求和:

>>> df.column3.str.split().str.len().sum()
6

或者,在不拆分的情况下对空格的计数求和(加 1):

>>> df.column3.str.count("\s+").add(1).sum()
6

对每一列执行此操作:

>>> df.apply(lambda s: s.str.count("\s+").add(1).sum())

column1    3
column2    3
column3    6
column4    3