gpt4 book ai didi

python - 按列中值的频率排序 - Pandas

转载 作者:太空宇宙 更新时间:2023-11-03 15:54:33 25 4
gpt4 key购买 nike

我在数据框中有一列

水果
苹果
芒果
香蕉
苹果
芒果
香蕉
苹果
芒果
葡萄

我想按其中值出现的频率对该列进行排序,因此数据框现在应该是:

水果
苹果
苹果
苹果
香蕉
香蕉
香蕉
芒果
芒果
葡萄

谢谢!

最佳答案

创建一个频率列,然后按频率和水果名称排序。

df.assign(freq=df.apply(lambda x: df.Fruits.value_counts()\
.to_dict()[x.Fruits], axis=1))\
.sort_values(by=['freq','Fruits'],ascending=[False,True]).loc[:,['Fruits']]
Out[593]:
Fruits
0 Apple
3 Apple
6 Apple
1 Mango
4 Mango
7 Mango
2 Banana
5 Banana
8 Grapes

使用 groupby 和 count 的类似方法:

df.assign(freq=df.groupby('Fruits')['Fruits'].transform('count'))\
.sort_values(by=['freq','Fruits'],ascending=[False,True]).loc[:,['Fruits']]
查看所有列:
df.assign(freq=df.groupby('Fruits')['Fruits'].transform('count'))\
.sort_values(by=['freq','Fruits'],ascending=[False,True])

关于python - 按列中值的频率排序 - Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44363585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com