python - Python Pandas 使用 [groupby] 时对中间列的排序
问题描述
我正在使用 python pandas 并希望按下表的中间列对输出进行排序(我已经显示了我得到的输出和我想要得到的所需输出)
我在 pandas 中使用 groupby 函数来获取输出,但是它是按计数列排序(见下面的输出表),而不是我想按 YOB 列排序(请参阅所需的输出表)
另外,我如何计算每个国家的平均出生年份。
import pandas as pd
xlpath= "C:/Users/Username/documents/Datafile.xlsx"
df = pd.read_excel(eval('xlpath'))
y = df.groupby('COUNTRY').YOB.value_counts(ascending=False)
print(y)
Output:
Desired Output:
期待您的反馈意见。
谢谢
解决方案
假设您不关心“国家/地区”列的排序(因为您没有指定有问题的),这是实现每个国家/地区每年分组计数的一种方法,保持年份按升序排列:
df2 = df.groupby(["Country", "YOB"]).count()
df2 = df2.sort_values(["Country","YOB"], ascending=[True, True])
print(df2)
或者在一行中:
print(df.groupby(["Country", "YOB"]).count().sort_values(["Country","YOB"], ascending=[True, True]))
推荐阅读
- google-colaboratory - 使用 Matplotlib 在 Colab 中加载文件
- qt - 查找不属于 qobjects 层次结构的 QObject
- c# - 尽管收到响应并且没有导致死锁,client.PostAsync 仍挂起
- python - ValueError:形状(5,640)和(26,26)未对齐:640(dim 1)!= 26(dim 0)
- flutter - 如何在颤动中刷新 listview.builder?
- android - 未处理的异常:类型“bool”不是类型转换中“字符串”类型的子类型
- azure - Kubectl 不允许我删除任何内容 - 如何删除所有当前部署?
- python - 我想在我正在制作的游戏项目中停止并开始音乐
- vue.js - 为什么 nuxt-link 与 Bootstrap-vue 一起使用时会刷新页面?
- r - 如何从具有 2 个输入的反应表中制作图表?R闪亮