小能豆

Pandas value_counts() 在同一行中有多个匹配项

py

我有分类数据(AB等),其中同一字段中可以存在多个匹配项,例如A,B。我想将数据分成额外的行,只是为了计算每个值的实例数。

df = pd.DataFrame({"Values" : ["A", "B", "C", "A,B"]})
df
    Values
0   A
1   B
2   C
3   A,B

现在:

df["Values"].value_counts()
B       1
A,B     1
A       1
C       1
Name: Values, dtype: int64

我的理想功能应该是这样的:

df["Values"].value_counts(split = ",")
A    2
B    2
C    1
Name: Values, dtype: int64

阅读 35

收藏
2024-12-08

共1个答案

小能豆

使用Series.str.split然后explode()

print( df['Values'].str.split(',').explode().value_counts() )

印刷:

A    2
B    2
C    1
Name: Values, dtype: int64

编辑:

df = pd.DataFrame({"Values" : ["A", "B", "C", "A,B"]})
print( df['Values'].str.split(',').explode().value_counts() )
2024-12-08