Python 如果列具有字符串,则将值转换为负值

Python 如果列具有字符串,则将值转换为负值,python,pandas,dataframe,Python,Pandas,Dataframe,我试图将python中的数量从正转换为负,我有下表: 收付 数量 付款 1233 收据 4561.3 尝试: 印刷品: 收付款金额2 0付款1233.0-1233.0 1收据4561.3 4561.3 试试: 印刷品: 收付款金额2 0付款1233.0-1233.0 1收据4561.3 4561.3 使用df.where,您在正确的轨道上做得非常好 df['Amount 2'] = df.Amount.where(df['Receipt / Payment'].ne('Payment'), -d

我试图将python中的数量从正转换为负,我有下表:

收付 数量 付款 1233 收据 4561.3 尝试:

印刷品:

收付款金额2
0付款1233.0-1233.0
1收据4561.3 4561.3
试试:

印刷品:

收付款金额2
0付款1233.0-1233.0
1收据4561.3 4561.3

使用df.where,您在正确的轨道上做得非常好

df['Amount 2'] = df.Amount.where(df['Receipt / Payment'].ne('Payment'), -df.Amount)
输入

    Receipt / Payment   Amount
0   Payment             1233.0
1   Receipt             4561.3
    Receipt / Payment   Amount  Amount 2
0   Payment             1233.0  -1233.0
1   Receipt             4561.3  4561.3
输出

    Receipt / Payment   Amount
0   Payment             1233.0
1   Receipt             4561.3
    Receipt / Payment   Amount  Amount 2
0   Payment             1233.0  -1233.0
1   Receipt             4561.3  4561.3

你在df.where的正确轨道上做得很好

df['Amount 2'] = df.Amount.where(df['Receipt / Payment'].ne('Payment'), -df.Amount)
输入

    Receipt / Payment   Amount
0   Payment             1233.0
1   Receipt             4561.3
    Receipt / Payment   Amount  Amount 2
0   Payment             1233.0  -1233.0
1   Receipt             4561.3  4561.3
输出

    Receipt / Payment   Amount
0   Payment             1233.0
1   Receipt             4561.3
    Receipt / Payment   Amount  Amount 2
0   Payment             1233.0  -1233.0
1   Receipt             4561.3  4561.3

这真是太有魅力了,非常感谢!这真是太有魅力了,非常感谢!