如何在Pandas中拆分单元格并统计所有唯一值?
解决多选水果答案的次数统计问题
方法一:使用melt + value_counts
保留你已有的拆分代码,通过melt将多列数据扁平化后统计次数:
# 拆分多选答案得到多列数据 df_split = data['What fruits do you like'].str.split(',', expand=True) # 扁平化数据并统计水果出现次数 fruit_counts = df_split.melt(value_name='Fruit')['Fruit'].dropna().value_counts().reset_index() # 重命名列名 fruit_counts.columns = ['Fruit', 'Count']
方法二:使用stack + value_counts
stack可直接将多列转为层级索引的Series,统计逻辑更简洁:
df_split = data['What fruits do you like'].str.split(',', expand=True) fruit_counts = df_split.stack().value_counts().reset_index() fruit_counts.columns = ['Fruit', 'Count']
这两种方法都会自动忽略拆分后产生的空值,直接生成以水果名为标识、出现次数为统计值的表格,比pivot_table或循环写法更高效。
内容的提问来源于stack exchange,提问作者Daniil Lokutnikov
相关产品推荐
相关产品推荐

