当值等于rows
中的特定值时,我想在pandas
df
中移动Column
。对于下面的df
,我试图在Column B
中将Column A
中的值移动到A == x
。
import pandas as pd
df = pd.DataFrame({
'A' : [1,'x','x','x',5],
'B' : ['x',2,3,4,'x'],
})
这是我的尝试:
df = df.loc[df.A.shift(-1) == df.A.shift(1), 'x'] = df.A.shift(1)
预期产出:
A B
0 1 x
1 2
2 3
3 4
4 5 x
您可以使用:
m = df.A.eq('x')
df[m]=df[m].shift(-1,axis=1)
print(df)
A B
0 1 x
1 2 NaN
2 3 NaN
3 4 NaN
4 5 x
您可以使用:
df[df.A=='x'] = df.shift(-1,axis=1)
print(df)
A B
0 1 x
1 2 NaN
2 3 NaN
3 4 NaN
4 5 x