4
我想创建一列中的值来自一列,但基于匹配另一列与以前的值。熊猫:找到匹配值的前一行
这里是我当前的代码:
d = {'a':[1,2,3,1,2,3,2,1], 'b':[10,20,30,40,50,60,70,80]}
df = pd.DataFrame(d)
df['c'] = df['b'][df['a'] == df['a'].prev()]
而我想要的输出:
a b c
0 1 10 NaN
1 2 20 NaN
2 3 30 NaN
3 1 40 10
4 2 50 20
5 3 60 30
6 2 70 50
7 1 80 40
...这我没有收到,因为.prev()
是不是一个真实的东西。有什么想法吗?
这很好!虽然“转化”是必要的吗? 'df.groupby('a')['b']。shift()' – miradulo
@Mitch,哇,谢谢!我不知道我们可以使用'GroupBy.shift()' – MaxU
@MaxU每当我发现这些方法存在于像GroupBy对象这样的东西时,感觉就像是神奇的:) – miradulo