首页 > 解决方案 > 当等于特定值时移动列中的行

问题描述

当值等于 a 中的特定值时,我想移入rowsa 。对于以下内容,我试图将值转换为when 中的值。pandas dfColumndfColumn BColumn AA == 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

标签: pythonpandasdataframeshift

解决方案


您可以使用:

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

推荐阅读