gpt4 book ai didi

python - Pandas : how do I create a column based on data from the same dataframe?

转载 作者:行者123 更新时间:2023-12-02 08:54:31 25 4
gpt4 key购买 nike

我有一个类似于

的 Pandas 数据框
d = {'id': [1, 2, 2, 3], 'year': [2010, 2010,2011,2010], 'type' : ['A','B','B','A'], 'value': [20,2,8,3]}
df = pd.DataFrame(data = d)

那就是

   id  year type  value
0 1 2010 A 20
1 2 2010 B 2
2 2 2011 B 8
3 3 2010 A 3

我想添加一个新列,其中包含一年后相同 idtype 的值(如果 df 中存在的话)(否则为 0)。即预期结果为

   id  year type  value  new_value
0 1 2010 A 20 0
1 2 2010 B 2 8
2 2 2011 B 8 0
3 3 2010 A 3 0

我想不出一种方法来做到这一点(我一直在尝试使用 apply )。有什么建议吗?

最佳答案

您可以尝试合并:

(df.merge(df.assign(year=df['year']-1)[['id','year','value']],
on=['id','year'],
how='left',
suffixes=['','_y'])
.fillna(0)
)

输出:

   id  year type  value  value_y
0 1 2010 A 20 0.0
1 2 2010 B 2 8.0
2 2 2011 B 8 0.0
3 3 2010 A 3 0.0

关于python - Pandas : how do I create a column based on data from the same dataframe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60006097/

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