如果panda的条件为true,则将列值设置为下一行的值



我有一个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

最新更新