Pandas 用字符串值填充 NaN 值并保持 None 值相同[重复]

问题描述 投票:0回答:2

我有一个具有混合数据类型的数据框。我想填充 NaN 值,但保持 None 值不变。

我尝试使用 pandas 中的 fillna() 方法,但该函数同时填充 NaN 和 None 值。 我想用特定的字符串值(如“x”)填充 NaN,而不是数字。并保持 None 值相同。

For example:
   A     B     C
0  12    0    None
1  None  NaN  None
2  NaN   9.8  1
3  0     NaN  1

Expected:
   A     B     C
0  12    0    None
1  None  x    None
2  x     9.8  1
3  0     x    1
python pandas nan nonetype fillna
2个回答
0
投票
df = pd.DataFrame([[None, 3], ["", np.nan]]) #created a dummy dataframe with these values

然后使用下面的代码段将 None 更改为“None”(字符串),然后将 NA 替换为您想要替换的值。

最终将其转换回 None (不是字符串)

df.replace({None:'None'}).fillna("x").replace({'None':None})

结果看起来像这样

0 None  3.0 
1       x

0
投票

如果

df
是您的数据框:

df = df.replace({None:'None'}).fillna('x')

在第一步中,您将用字符串“None”替换

None
,然后在第二步中,您将用字符串“x”填充
NaN

© www.soinside.com 2019 - 2024. All rights reserved.