您好我有以下数据框(df):
Group Value
A 1
A 2
A 3
B -1
B 2
B 3
我想将所有B组转换为负值,如果它们还没有(即乘以-1)。
df[df['group'] == 'B', 'value'].apply(... if value less than 0 then -1*value)
请让我知道在熊猫框架中进行此操作的正确方法。谢谢
答案 0 :(得分:4)
In [85]: df.loc[df.Group.eq('B') & df.Value.gt(0), 'Value'] *= -1
In [86]: df
Out[86]:
Group Value
0 A 1
1 A 2
2 A 3
3 B -1
4 B -2
5 B -3
答案 1 :(得分:2)
使用mask
和np.sign
df.assign(Value=df.Value.mask(df.Group == 'B', -np.sign(df.Value) * df.Value))
Group Value
0 A 1
1 A 2
2 A 3
3 B -1
4 B -2
5 B -3