city price
Moscow | 100
Paris | 200
Moscow | 150
Lisboa | 200
Rome | 100
Rome | 175
Moscow | 300
Rome | 450
Paris | 500
Istanbul| 430
Milan | 200
Istanbul| 550
Berlin | 300
Lisboa | 500
Rome | 200
我有一个包含许多列的数据框架,但现在我在示例中只使用这两个列
我需要通过计数获得前五名城市,我通过
data['city'].value_counts().head(5)
我看到这样的情况:
Rome | 4
Moscow | 3
Paris | 2
Lisboa | 2
Istanbul| 2
然后,我需要按价格对同一个前5名城市进行排序,并得到它们的平均值/中位数
如果我使用
data.groupby('city')['price'].agg(
['mean', 'median', 'count']
).sort_values('mean', ascending=False).head(10)
我得到了另一个按“价格”列排序的城市列表,但上一代码部分中的前5个城市不会保存
mean
Istanbul| 450
Paris | 350
Lisboa | 350
Berlin | 300
Moscow | 250
我的问题是:是否可以按另一列(在我的例子中是“价格”列)对先前创建的数据帧头(5)部分进行排序
我试着把它保存在变量中,比如
s = data['city'].value_counts().head(5)
但它是一个系列,只有city和count值,没有原始数据框中的价格值,所以我很沮丧。有什么想法吗?谢谢
IIUC try^{} +^{} :
df
:或根据值的结果合并\u计数如下:
new_df
:然后执行任何操作:
new_df
:相关问题 更多 >
编程相关推荐