如何在pandas dataframe中使用groupby或pivot表查找平均值?

2024-10-16 22:34:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用工资.csv找到https://www.kaggle.com/kaggle/sf-salaries/data的数据集 我试图找到500个以上的职位数据点。之后计算每个职位的平均工资总额。输出是打印前10个赚钱的职称。 enter image description here

我所做的

salaries = pd.read_csv('Salaries.csv')
salaries = salaries.drop(["Id", "Notes", "Status", "Agency"], axis = 1)
salaries = salaries.dropna()
salaries.head()

jobtitlelist = (salaries.JobTitle.value_counts()>500)[0:10]
data_10jobtitle = salaries[salaries.JobTitle.isin(jobtitlelist.index)]
avgsalary_10jobtitle = data_10jobtitle.groupby(by=data_10jobtitle.JobTitle).TotalPayBenefits.mean()
print(avgsalary_10jobtitle)

我的输出是 enter image description here

我在想,我错过了一些我找不到确切输出的小东西。在


Tags: csv数据httpscomdatawww职位sf
2条回答

你需要改变这条线

jobtitlelist = salaries.JobTitle.value_counts()[(salaries.JobTitle.value_counts()>500)][0:10]

在这一行中:

jobtitlelist = (salaries.JobTitle.value_counts()>500)[0:10]

首先找到至少有500条记录的工作,然后选择前10个工作,这些工作用于计算平均总薪酬福利。所以你的工作流程是

  1. 只保留至少有500条记录的职称
  2. 取前10个职位
  3. 计算平均工资总额

但根据你的问题,你的工作流程应该

  1. 只保留至少有500条记录的职称
  2. 计算步骤1)中工作的平均总薪酬
  3. 按升序排序平均工资总额
  4. 结果数据帧的前10行将是您要查找的

相关问题 更多 >