我想创建一个新列,并用0
和1
替换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)
看来第二行不正确。
有什么建议吗?
首先,您需要将所有的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计为空条目,这可能是也可能不是所需的功能。
您可以尝试:
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的非连续列更改为零-