如何为Pandas DataFrame添加统计ID列值出现频次的新列
实现方法
你可以通过value_counts()配合map()方法快速生成目标列,具体操作如下:
步骤1:获取ID的出现次数
先用value_counts()统计每个ID的出现频次,这会返回一个以ID为索引、频次为值的Series:
counts = df['ID'].value_counts()
步骤2:映射生成新列
用map()方法将原DataFrame中的每个ID对应到其频次,赋值给新列n_ID:
df['n_ID'] = df['ID'].map(counts)
完整示例代码
import pandas as pd # 构造原始DataFrame data = { 'ID': [1,1,1,2,2,3,3,3,3,4,4], 'feature': [2,3,4,3,2,5,8,4,2,4,6] } df = pd.DataFrame(data) # 生成n_ID列 counts = df['ID'].value_counts() df['n_ID'] = df['ID'].map(counts) print(df)
运行结果
ID feature n_ID 0 1 2 3 1 1 3 3 2 1 4 3 3 2 3 2 4 2 2 2 5 3 5 4 6 3 8 4 7 3 4 4 8 3 2 4 9 4 4 2 10 4 6 2
内容的提问来源于stack exchange,提问作者Apook
相关产品推荐
相关产品推荐

