使用df['ID'].value_counts()统计ID出现次数时新列无值如何解决
问题原因
df['ID'].value_counts() 返回的是以ID值为索引、对应出现次数为值的Series对象。直接将这个结果赋值给DataFrame的新列时,pandas会按照DataFrame的行索引做匹配赋值,而不是按照ID值匹配,因此绝大多数行位置都会返回空值。
解决方法
有两种常用的实现方案,都可以让每个ID对应的所有行都正确显示该ID的总出现次数:
- 方案1:通过
map映射计数结果
df['Total Occurences'] = df['ID'].map(df['ID'].value_counts())
- 方案2:通过
groupby+transform分组赋值
df['Total Occurences'] = df.groupby('ID')['ID'].transform('count')
内容的提问来源于stack exchange,提问作者cchev
相关产品推荐
相关产品推荐

