gpt4 book ai didi

python - Pandas :有条件地返回列的值

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

我正在尝试创建一个名为“wage_rate”的新列,根据观察年份为员工填写适当的工资率。

换句话说,我的列表看起来像这样:

eecode  year    w2011   w2012   w2013
1 2012 7 8 9
1 2013 7 8 9
2 2011 20 25 25
2 2012 20 25 25
2 2013 20 25 25

我想在新列中返回,第一行 8,第二行 9,20、25、25。

最佳答案

一种方法是使用 apply,方法是根据年份为每一行构造列名,例如 'w' + str(x.year)

In [41]: df.apply(lambda x: x['w' + str(x.year)], axis=1)
Out[41]:
0 8
1 9
2 20
3 25
4 25
dtype: int64

详细信息:

In [42]: df
Out[42]:
eecode year w2011 w2012 w2013
0 1 2012 7 8 9
1 1 2013 7 8 9
2 2 2011 20 25 25
3 2 2012 20 25 25
4 2 2013 20 25 25

In [43]: df['wage_rate'] = df.apply(lambda x: x['w' + str(x.year)], axis=1)

In [44]: df
Out[44]:
eecode year w2011 w2012 w2013 wage_rate
0 1 2012 7 8 9 8
1 1 2013 7 8 9 9
2 2 2011 20 25 25 20
3 2 2012 20 25 25 25
4 2 2013 20 25 25 25

关于python - Pandas :有条件地返回列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33407543/

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