微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python Pandas用相反的符号替换值

我试图“清理”一些数据.我的价值是负面的,但他们不能.我想将所有负值替换为相应的正值.

A    | B     | C
-1.9 | -0.2  | 'Hello'
1.2  | 0.3   | 'World'

我希望这成为

A    | B     | C
1.9  | 0.2   | 'Hello'
1.2  | 0.3   | 'World'

截至目前,我刚刚开始编写替换语句

df.replace(df.loc[(df['A'] < 0) & (df['B'] < 0)],df * -1,inplace=True)

请帮助我正确的方向

解决方法:

只需拨打abs

In [349]:

df = df.abs()
df
Out[349]:
     A    B
0  1.9  0.2
1  1.2  0.3

另一种方法是创建一个布尔掩码,删除NaN行,在索引上调用loc并分配负值:

df.loc[df[df<0].dropna().index] = -df

编辑

对于有字符串的情况,以下内容可行:

In [399]:

df[df.columns[df.dtypes != np.object]] = df[df.columns[df.dtypes != np.object]].abs()
df
Out[399]:
     A    B      C
0  1.9  0.2  Hello
1  1.2  0.3  World

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐