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