我需要在Pandas中创建一个新列,从以前的数据中为特定ID查找特定星期中特定日期的值。数据如下所示:
ID / Day / Week / Value
1 / Mon / 5 / 10
1 / Tue / 5 / 12
1 / Wed / 5 / 17
2 / Mon / 5 / 12
2 / Tue / 5 / 14
2 / Wed / 5 / 12
3 / Mon / 5 / 16
3 / Tue / 5 / 19
3 / Wed / 5 / 22
1 / Mon / 6 / 12
1 / Tue / 6 / 17
1 / Wed / 6 / 16
2 / Mon / 6 / 15
2 / Tue / 6 / 15
2 / Wed / 6 / 20
3 / Mon / 6 / 10
3 / Tue / 6 / 14
3 / Wed / 6 / 17
1 / Mon / 7 / 12
1 / Tue / 7 / 19
1 / Wed / 7 / 22
2 / Mon / 7 / 13
2 / Tue / 7 / 14
2 / Wed / 7 / 25
3 / Mon / 7 / 11
3 / Tue / 7 / 16
3 / Wed / 7 / 20
现在让我们假设我想创建一个名为“Wk5Val”的新列,该列始终查找并选择第5周中同一ID的同一天的值。例如,对于ID=2,day=Tue,Week=7,该值应为14,因为这是ID=2&;的第5周值;天=星期二
在这一点上,我已经尝试了十几种不同的方法,但都无法解决这个问题。在我的脑海中,我认为它的工作原理相当于这样:
df[(df.Day == df.Day) & (df.week == 5) & (df.ID == df.ID)]['Value'].values[0]
但这只适用于特定值。我需要它来处理数据帧中的每一行,并根据“日”和“ID”进行调整
有什么直接的方法可以做到这一点吗
IIUC
可以将布尔索引与
merge
一起使用相关问题 更多 >
编程相关推荐