Python:DataFrame国家列频次统计错误,如何修正多国家计数?
解决DataFrame中多国家拆分后的计数问题
你当前的问题是str.split('/')把每个单元格转成了列表,但value_counts()是对整个列表对象计数,而非列表内的单个国家。要实现单个国家的频次统计,需要先把列表拆分成独立行,再进行统计:
具体步骤
- 拆分字符串为列表(你已完成此步)
df['Countries'] = df['Countries'].str.split('/')
- 将列表展开为单行数据
用explode()方法把每个列表里的元素拆成单独的行,让每个国家成为一条独立记录:
df_exploded = df['Countries'].explode()
- 统计每个国家的出现次数
对展开后的列使用value_counts()即可得到正确结果:
df_exploded.value_counts()
简化链式写法(可选)
如果想精简代码,可以直接链式调用:
df['Countries'].str.split('/').explode().value_counts()
执行后会输出你期望的结果:
CHINA 3 RUSSIA 2 PAKISTAN 1 Name: Countries, dtype: int64
内容的提问来源于stack exchange,提问作者Ash
相关产品推荐
相关产品推荐

