如何使用pandas统计dataframe指定列各值出现次数并新增统计列
实现方案
你可以通过pandas的分组聚合+映射逻辑完成该需求,以下是两种常用的实现方式:
方法1:groupby + transform(推荐,一行代码完成)
该方法不需要单独构建映射表,直接把分组统计的结果匹配回原数据的每一行:
import pandas as pd # 构造你的示例DataFrame df = pd.DataFrame({ 'Area': ['UT', 'TN', 'VT', 'AZ', 'CA'], 'Favorite Fruit': ['Banana', 'Grape', 'Banana', 'Banana', 'Cherry'] }) # 插入统计列 df['Fruit Count'] = df.groupby('Favorite Fruit')['Favorite Fruit'].transform('count')
方法2:value_counts + map
先统计所有水果的出现次数,再通过映射的方式给原数据匹配对应值:
# 先统计每个水果的总出现次数 fruit_count = df['Favorite Fruit'].value_counts() # 映射到原数据生成新列 df['Fruit Count'] = df['Favorite Fruit'].map(fruit_count)
两种方法运行后,打印df即可得到你需要的最终结果。
内容的提问来源于stack exchange,提问作者Devin
相关产品推荐
相关产品推荐

