我有一个pandas数据帧,如果不同列的条件为true,我想用下一行的值覆盖另一列的值。例如,我的数据如下:
col1 | col2 |
---|---|
30 | 错误 |
40 | True |
50 | 错误 |
如果您想要下一行,应该给出shift(-1(。
import pandas as pd
df = pd.DataFrame({'col1':[30,40,50],
'col2':[False,True,False]})
print (df)
df.loc[df['col2'],'col1'] = df['col1'].shift(-1)
print (df)
这是输出:
之前:
col1 col2
0 30 False
1 40 True
2 50 False
之后:
col1 col2
0 30.0 False
1 50.0 True
2 50.0 False