当前位置: 首页 > 知识库问答 >
问题:

python替换非na值[重复]

田念
2023-03-14

我想创建一个新列,并用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)

看来第二行不正确。
有什么建议吗?

共有2个答案

俞俊逸
2023-03-14

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

况安然
2023-03-14

您可以尝试:

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

希望这有帮助。

 类似资料:
  • 我正在处理一个数据集,其中的分数是根据从临床记录中收集的数据计算出来的。在某些情况下,这些数据被忽略,因此分数无法计算,并记录为NA。 在某些情况下,我可以用以前的值替换安娜值。这种方法的局限性是: 如果分数为NA,检查前一个和下一个值是否为NA。如果前一个值和后一个值都不为NA,则插入这些分数的平均值。 如果分数为NA,请检查前一个值和下一个值是否为NA。如果只有前一个值不是NA,则将第一个NA

  • 我有一个像这样的数据框 我想将性别转换为0,1编码并使用isnull检查列中没有NA 但是,在这一行我收到了ValueError:无法将非有限值(NA或inf)转换为整数 有什么建议吗?谢谢你!

  • 我有一个大的json存储在一个字符串中。我想更改字符串的某些部分,但出现以下错误: 5/>(Pattern.java:3104)java.util.regex.Pattern.sequence(Pattern.java:2101)java.util.regex.Pattern.expr(Pattern.java:1964)java.util.regex.Pattern.compile(Patter

  • 我有一个非常简单的问题。然而,我所能找到的都是非常复杂的答案,并不完全符合我的需求。 最接近的,我在这里发现: 弗洛德尔和埃迪的回答(data.table) 但是,我想额外指定如何根据不同列中的值处理指定列中的NA。 我有一个data.table,其中包含NA列,其中< code>fac是一个因子变量。 我想做的是根据< code>iso3c中的值将值< code>D和< code>E分配给< c

  • 本文向大家介绍如何将NA替换为R数据帧中选定列的值?,包括了如何将NA替换为R数据帧中选定列的值?的使用技巧和注意事项,需要的朋友参考一下 在数据分析中,在数据框中查找某些NA值非常普遍,但如果包含NA值的列对分析无用,则所有NA值都不会产生问题。我们可以将所有NA值替换为0或将其他有用的列替换为其他值。 示例 请看以下数据帧- 将NA的连续列更改为零- 将NA的非连续列更改为零-