gpt4 book ai didi

python - Pandas 排序值

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

在对 Kaggle 的 SF Salaries 数据集进行数据分析时 ( https://www.kaggle.com/kaggle/sf-salaries ),我想知道加类费按照年份和职位的排名。

What I decided to get

我的解决方案是:

df = df[['Year','JobTitle','OvertimePay']].copy()
df2 = df.sort_values('OvertimePay', ascending= False)

which turned out to be like this 。显然,结果并没有如我所料。除了索引之外,它似乎排序不正确,因为 173547.73 后面应该跟着 163477.81 等。请帮忙。谢谢。

最佳答案

我不确定您是否意识到每一行对应于不同的员工。因此,当您执行 df = df[['Year','JobTitle','OvertimePay']].copy() 时,同一年会多次出现“Deputy Sheriff”,一次为每个员工。这种情况可能会发生多次,因为不同的员工具有相同的“JobTitle”。

为了实现您想要的目标,您可以drop_duplicates并仅获取“年份”中每个“职务”的高薪员工。不过,我建议您分析一下这是否真的是您想要的。

这是我将使用的代码:

import numpy as np
import pandas as pd

df = pd.read_csv('Salaries.csv')
df['OvertimePay'] = df['OvertimePay'].replace("Not Provided",np.nan).astype(float)
df = df[['Year','JobTitle','OvertimePay']].copy()
df.drop_duplicates(subset=['Year','JobTitle'])
df2 = df.sort_values('OvertimePay', ascending= False)

编辑:要更改格式,我将使用类似以下内容的内容:

print(df2.iloc[0:20,].to_string(header=['Year','JobTitle',''],index=False,justify='left',
formatters={'JobTitle':'{{:<{}s}}'.format(df2['JobTitle'].str.len().max()).format}))

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

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