从2列切换值

时间:2018-11-27 18:17:01

标签: python

我正在编写一个读取Excel工作表的Python脚本。
在我的Excel工作表中,我有两列,例如A和B。
如果B列的值大于A列,我想对其进行切换。

示例表:

[A]     [B]
 1       6
 10      2
 3       11

想要的输出:

[A]     [B]
 6       1
 10      2
 11      3

现在我有了这个,但是它给了我完全不同的值:

s = (~(col['A'] < col['B'])).cumsum().eq(0)
col.loc[s, 'B'] /=2
col.loc[s, 'A'] = col.loc[s, ['A', 'B']].sum(1)

1 个答案:

答案 0 :(得分:0)

我假设您正在根据您的语法使用Pandas。使用DataFrame.apply()方法将是一个很好的情况。

import pandas as pd

df = pd.DataFrame({'A': [1, 10, 3], 'B': [6, 2, 11]})

def switch(row):
    if row['A'] < row['B']:
        row['A'], row['B'] = row['B'], row['A']
    return row
df = df.apply(switch, axis=1)
print(df)

给予:

    A  B
0   6  1
1  10  2
2  11  3