我正在使用以下公式从 a 中获取值计数。数据框中的列:
new_data = df['item'].value_counts()
这给了我下面的结果
Apples 3
Green bananas 2
Bananas 1
Oranges 1
我想要的是获取新列中每个项目的输出,如下面的 excel 示例
如有任何帮助或指导,我们将不胜感激。 谢谢
最佳答案
使用Series.map
为您的解决方案:
new_data = df['item'].value_counts()
df['Occurence'] = df['item'].map(new_data)
一行解决方案:
df['Occurence'] = df['item'].map(df['item'].value_counts())
如果有多个列:
cols = ['item','item1']
for c in cols:
df[f'Occurence_{c}'] = df[c].map(df[c].value_counts())
df.loc[len(df), cols] = df[cols].sum()
或者:
df = df.join(df[cols].apply(lambda x: x.map(x.value_counts())).add_prefix('Occurence_'))
https://stackoverflow.com/questions/69301013/