使用Python中的Replace()或fillna()方法,将Pandas中的某一列中的NAN替换为字典的值。

10 浏览
0 Comments

使用Python中的Replace()或fillna()方法,将Pandas中的某一列中的NAN替换为字典的值。

我是Python的新手,尝试使用fillna()功能时遇到了一些问题。

我有一个名为Temp_Data_DF的DataFrame,其中有两列如下:

Temp_Data_DF:
A  B
1  NAN
2  NAN
3  {'KEY':1,'VALUE':2}

我想用字典值替换所有的NAN,并且结果DataFrame应该是这样的:

Temp_Data_DF:
A  B
1  {'KEY':1,'VALUE':2}
2  {'KEY':1,'VALUE':2}
3  {'KEY':1,'VALUE':2}

我尝试了以下代码:

Bvalue = {'KEY':1,'VALUE':2}
Temp_Data_DF['B']=Temp_Data_DF['B'].fillna(Bvalue)

但它没有用期望的值替换NAN。

将不胜感激的帮助。

我参考了下面的链接。

链接:Pandas dataframe fillna() only some columns in place

0
0 Comments

在使用Python中的Pandas库处理数据时,有时候会遇到需要用字典的值来替换数据列中的缺失值的情况。一个用户遇到了类似的问题,但是之前的解决方法并不能解决他的问题。最终,他通过创建一个从默认字典列表中生成的系列来解决了这个问题。

问题的解决方法如下所示:

Temp_Data_DF['B'] = Temp_Data_DF['B'].fillna(pd.Series([{'KEY':1,'VALUE':2}] * Temp_Data_DF.shape[0]))

这段代码中,首先使用`fillna()`方法来填充数据列中的缺失值。`fillna()`方法接受一个参数,用于指定用来替换缺失值的值。在这个例子中,我们使用了`pd.Series()`方法来创建一个系列。该系列是由一个默认字典列表生成的,这个列表中的每个字典都包含了两个键值对:'KEY'和'VALUE'。这将确保缺失值被替换为我们指定的字典值。

最终,将生成的系列赋值给数据列'B',以完成缺失值的替换操作。

通过这种方法,我们可以轻松地用字典的值来替换数据列中的缺失值,从而保证数据的完整性和准确性。

0
0 Comments

问题出现的原因是在 Pandas 中的某一列中存在 NaN 值,需要用字典中的值替换这些 NaN 值。解决方法有两种:

1. 使用 fillna() 方法,通过创建一个由字典创建的 Series 来填充 NaN 值。具体步骤如下:

Bvalue = {'KEY':10,'VALUE':20}
Temp_Data_DF['B'] = Temp_Data_DF['B'].fillna(pd.Series([Bvalue], index=Temp_Data_DF.index))
print(Temp_Data_DF)

这种方法的原理是创建一个与原始 Series 大小相同的新 Series,并用字典填充,然后使用 fillna() 方法通过另一个 Series 填充 NaN 值。

2. 使用 if-else 条件语句和 apply() 方法,通过判断 NaN 的存在与否来替换。具体步骤如下:

Bvalue = {'KEY':10,'VALUE':20}
Temp_Data_DF['B'] = Temp_Data_DF['B'].apply(lambda x: x if x == x else Bvalue)
print(Temp_Data_DF)

这种方法的原理是利用 NaN 不等于 NaN 的特性,通过 apply() 方法中的 if-else 条件判断来替换 NaN 值。

以上两种方法都可以解决问题,并根据具体需求选择合适的方法。

0