Pandas value_依赖于on中的多个值

2024-04-28 17:36:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个dataframe,它有一个包含多个值的列,用逗号分隔,如下所示:

Country
Australia, Cuba, Argentina
Australia
United States, Canada, United Kingdom, Argentina

我想对每个唯一的值进行计数,类似于value\u counts,如下所示:

^{pr2}$

我最简单的方法如下所示,但我怀疑这可以更高效、更整洁地完成。在

from collections import Counter
Counter(pd.DataFrame(data['Country'].str.split(',', expand=True)).values.ravel())

干杯


Tags: dataframevaluecountercountryunitedkingdom计数逗号
3条回答

另一个选择是split,然后使用value_counts

pd.Series(df.Country.str.split(', ').sum()).value_counts()

Argentina         2
Australia         2
United Kingdom    1
Canada            1
Cuba              1
United States     1
dtype: int64

我认为,对于pandas版本>;=0.25.0,这是最有效的方法。因为explode函数在pandas 0.25.0发布后是有效的。在

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

您可以使用get_dummies

df.Country.str.get_dummies(sep=', ').sum()
Out[354]: 
Argentina         2
Australia         2
Canada            1
Cuba              1
United Kingdom    1
United States     1
dtype: int64

相关问题 更多 >