替换数据帧上的NaN值



我有一个带有一些NaN值的df,我想用相邻列(在同一行(上的值的平均值来替换它们。

我该怎么做?

我正在尝试对数据帧的所有元素进行迭代,但我不会去任何地方。有人能帮帮我吗?

示例:在这个df中,我想将NaN值替换为相邻列的平均值,即0和-2之间的平均值。我该怎么做?

import pandas as pd
import numpy as np
d = {'col1': [4, 0, 2], 'col2': [1, np.nan, 4], 'col3': [12, -2, 4]}
df = pd.DataFrame(data=d)
df.head()

使用默认线性方法的interpolate

df2 = df.interpolate(axis=1)

一个很好的方法是:

mean = df["columnName"].mean()
df["columnName"].fillna(mean,inplace=True)

inplace=True将修改原始数据帧。

编辑:关于为什么不在原地使用=真,你可以在这里找到:为什么你可能永远不应该在原地使用熊猫=真

最新更新