gpt4 book ai didi

python - 如何在 Pandas 中分组和过滤

转载 作者:太空宇宙 更新时间:2023-11-04 11:19:33 25 4
gpt4 key购买 nike

我在 Pandas 中有以下数据框

   from_exp     to_exp     salary
5 7 10to12
5 7 15to20
0 3 1to3
2 5 4to6
5 9 7to8
5 10 10to12

我想看看 from_exp 的不同薪水范围是 5 年。

所需的数据框

   from_exp       salary_range      count
5 10to12 2
5 15to20 1
5 7to8 1

我在 pandas 中进行跟踪,但它不起作用。

df.groupby(['from_exp','salary_range']).filter(
lambda x : x['from_exp'] == '5'
)['salary'].size()

最佳答案

您需要先过滤,然后分组。您可以使用 query 在一行中完成所有操作:

(df.query('from_exp == 5')
.groupby(['from_exp', 'salary'], as_index=False)
.count())

from_exp salary to_exp
0 5 10to12 2
1 5 15to20 1
2 5 7to8 1

由于预过滤步骤,此处无需对“from_exp”进行分组,但我已在此处进行分组以重现您的预期输出。

如果您不特别将“from_exp”作为第一列,请改用value_counts:

(df.query('from_exp == 5')['salary']
.value_counts()
.reset_index()
.set_axis(['salary_range', 'count'], axis=1, inplace=False))

salary_range count
0 10to12 2
1 15to20 1
2 7to8 1

关于python - 如何在 Pandas 中分组和过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56301441/

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