【问题标题】:python replace not na value [duplicate]python替换不是na值[重复]
【发布时间】:2019-11-12 09:24:12
【问题描述】:

我想创建一个新列并用01 替换NA 并且不缺少值。

#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)

看来第二行写错了。
有什么建议吗?

【问题讨论】:

标签: python pandas replace


【解决方案1】:

你可以试试:

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

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    首先,您需要将所有 '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 视为空条目,这可能是也可能不是所需的功能。

    【讨论】:

      猜你喜欢
      • 2021-06-28
      • 1970-01-01
      • 2019-10-11
      • 1970-01-01
      • 1970-01-01
      • 2019-06-27
      • 1970-01-01
      • 2021-10-10
      • 1970-01-01
      相关资源
      最近更新 更多