我一直在寻找一种方法来做到这一点,但是没有成功找到可以在python / pandas中运行的东西。
我希望循环遍历行,直到再次找到1并连接前一行,直到找到一行并将其放在第三列中。
例如:
DF
'A' 'B' 'C'
1 4 4
2 3 43
3 1 431
4 2 4312
1 5 5
2 4 54
1 2 2
2 2 22
3 4 224
df
if df['A'] == 1
df['C'] = df.concat['B']
else
df['C'] = df.concat['B'] + df.concat['B'+1]
如果你不能说,这是我第一次尝试写一个循环。
使用python代码从列A和B生成列C的任何帮助都将非常受欢迎。
谢谢你, 詹姆斯
答案 0 :(得分:1)
这可以实现您的需求,使用cumsum
创建新密钥,然后我们再次使用cumsum
对我们创建的密钥进行分组
df.groupby(df.A.eq(1).cumsum()).B.apply(lambda x : x.astype(str).cumsum())
Out[838]:
0 4
1 43
2 431
3 4312
4 5
5 54
6 2
7 22
8 224
Name: B, dtype: object