python替换非na值

16 浏览
0 Comments

python替换非na值

这个问题已经有答案了

如何在Pandas Dataframe中将NaN值替换为零?

我想创建一个新的列并将NA和非缺失值替换为01

#df
col1  
1      
3
5
6

我想要的是:

#df
col1   NewCol
1           1
3           1
            0
5           1
            0
6           1

这是我尝试过的:

df['NewCol']=df['col1'].fillna(0)
df['NewCol']=df['col1'].replace(df['col1'].notnull(), 1)

似乎第二行是不正确的。

有什么建议吗?

admin 更改状态以发布 2023年5月22日
0
0 Comments

首先,您需要将所有的'na'转换为'0'。您可以根据范围使用不同的方法。
对于单列,您可以使用:

df['DataFrame Column'] = df['DataFrame Column'].fillna(0)

对于整个数据框,您可以使用:

df.fillna(0)

完成此操作后,您需要用'1'替换所有非零值。您可以按以下方式执行此操作:

for index, entry in enumerate(df['col']):
    if entry != 0:
        df['col'][index] = 1

请注意,此方法将0计为空条目,这可能是或不是所需的功能。

0
0 Comments

你可以尝试:

df['NewCol'] = [*map(int, pd.notnull(df.col1))]

希望这能帮到你。

0