在单列中替换非零值,pandas数据框

问题描述 投票:0回答:1

我有这个熊猫数据框:rls [20,34,21,19]审查[260,0,0,380]我试图用1s替换审查列中的非零值。我尝试了许多不同的方法,但是所有这些方法要么返回数据帧的相同副本,要么更改rls和受检查的列,这不是我想要的。感觉替换方法应该可行,但是我不知道如何指定非零值data_rls.censored.replace([(!= 0),0],[1,0],inplace = True)

pandas
1个回答
0
投票

欢迎您加入。请查看如何产生reproducible example

您可以使用pd.where()功能解决问题。

import pandas as pd
df = pd.DataFrame({'a':[1,3,4,0,0,4,5],'b':[1,3,4,0,0,4,5]})
df.head()

     a  b
0    1  1   
1    3  3   
2    4  4   
3    0  0   
4    0  0


df['a'] = df['a'].where(df['a'] == 0, 1)
df

    a   b
0   1   1
1   1   3
2   1   4
3   0   0
4   0   0
5   1   4
6   1   5
© www.soinside.com 2019 - 2024. All rights reserved.