当值等于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
答案 0 :(得分:3)
您可以使用:
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
答案 1 :(得分:1)
您可以使用:
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