python替换不是na值
我想创建一个新列,并用python替换不是na值,python,pandas,replace,Python,Pandas,Replace,我想创建一个新列,并用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'].
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)
对于整个数据帧,您可以使用:
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))]
希望这有帮助。
df['NewCol']=df['col1'].notna().astype(int)
@WeNYoBenTypeError:数据类型不可理解
@PeterChen将其用作字符串:“int”。或者也使用numpy数据类型: