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

dm7nw8vv  于 2023-09-29  发布在  其他
关注(0)|答案(2)|浏览(140)

此问题已在此处有答案

pandas: fillna(method="pad") "NaN" values but not "None"(2个答案)
8天前关闭
我有一个混合数据类型的数据框。我想填充NaN值,但保持None值不变。
我尝试使用pandas中的fillna()方法,但该函数同时填充NaN和None值。我想用一个特定的字符串值来填充NaN,比如'x',而不是数字。并保持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
yvgpqqbh

yvgpqqbh1#

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
6ss1mwsb

6ss1mwsb2#

如果df是您的 Dataframe :

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

在第一步中,您将用字符串'None'替换None,然后在第二步中,您将用字符串'x'填充NaN
如果NaN也被标识为None,请尝试:

import numpy as np
df = df.replace({np.nan: 'x'})

Replacing Pandas or Numpy Nan with a None to use with MysqlDB

相关问题