【问题标题】:Switch column values by condition in pandas在熊猫中按条件切换列值
【发布时间】:2021-12-03 06:24:26
【问题描述】:

我有一个数据框,例如:

COL1 COL2 Value 
A    B    -
C    D    +
E    F    +
G    H    -
I    J    -
K    L    -
M    N    -
O    P    +

Value == "-" 列时,我想在COL1COL2 之间切换值。

有人有想法吗?

我想我应该使用类似的东西:

m = tab['Value'].eq('-')

 np.where(.... 

【问题讨论】:

    标签: python-3.x pandas


    【解决方案1】:

    使用DataFrame.loc 将值转换为 numpy 数组:

    m = df['Value'].eq('-')
    
    df.loc[m, ['COL1','COL2']] = df.loc[m, ['COL2','COL1']].to_numpy()
    print (df)
      COL1 COL2 Value
    0    B    A     -
    1    C    D     +
    2    E    F     +
    3    H    G     -
    4    J    I     -
    5    L    K     -
    6    N    M     -
    7    O    P     +
    

    numpy.where 带有广播掩码:

    m = df['Value'].eq('-')
    df[['COL1','COL2']] = np.where(m.to_numpy()[:, None], 
                                   df[['COL2','COL1']], 
                                   df[['COL1','COL2']])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-30
      • 2021-07-14
      • 2020-11-20
      • 1970-01-01
      • 1970-01-01
      • 2013-04-15
      • 2018-08-09
      相关资源
      最近更新 更多