python - 使用 dataframe pandas 中的 value_counts 创建新列

我正在使用以下公式从 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/

相关文章:

python - 基于 2 个数据帧的 pandas 高效数据操作

rust - Vec> 按第一个元素升序排序,当第一个元素相等时按第二个元素降序排

r - 如果 R 中的其他列中存在值,则用于创建 T/F 列的 dplyr 解决方案

javascript - 如何使用新的 Webpack devServer 配置?

r - 使用 dplyr 嵌套或分组两个变量,然后对数据执行 Cronbach's alpha 函数

python - 如何减少由许多条件语句组成的函数?

python - 如何使用 Python 加密大文件?

c++ - C++20 中的新型自动生成构造函数

html - 使用图像标签在网页上显示原始像素阵列

julia - Julia 中具有评估/计算属性的结构