1
我在一个数据帧有一列排序的列值的频率 - 熊猫
水果
苹果
芒果
香蕉
苹果
芒果
香蕉
苹果
芒果
葡萄
我想排序在它出现的值的频率此列,所以,现在的数据帧应该是:
水果
苹果
苹果
苹果
香蕉
香蕉
香蕉
芒果
芒果
葡萄
谢谢!
我在一个数据帧有一列排序的列值的频率 - 熊猫
水果
苹果
芒果
香蕉
苹果
芒果
香蕉
苹果
芒果
葡萄
我想排序在它出现的值的频率此列,所以,现在的数据帧应该是:
水果
苹果
苹果
苹果
香蕉
香蕉
香蕉
芒果
芒果
葡萄
谢谢!
创建一个频率列,然后按频率和水果名称进行排序。
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和类似的方法计算:
df.assign(freq=df.groupby('Fruits')['Fruits'].transform('count'))\
.sort_values(by=['freq','Fruits'],ascending=[False,True]).loc[:,['Fruits']]
https://stackoverflow.com/questions/22391433/count-the-frequency-that-a-value-occurs-in-一个非数据帧列 –