如何简化Pandas数据帧的计算?

2024-06-28 11:23:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用SKSimpleImputer简化pandas数据帧列,如下所示:

imputer = SimpleImputer(missing_values=np.nan, strategy='mean')
imputer.fit(completeDF_encoded)

FDS1 = imp_mean.transform(completeDF_encoded)
FDS1

但transform返回的是一个数组,而不是一个数据帧,所有NAN都被替换,如下所示:

array([[1.0000e+00, 1.8800e+02, 0.0000e+00, ..., 0.0000e+00, 1.0000e+00,
        0.0000e+00],
       [2.0000e+00, 2.0900e+02, 0.0000e+00, ..., 1.0000e+00, 0.0000e+00,
        1.0000e+00],
       [3.0000e+00, 2.5700e+02, 0.0000e+00, ..., 1.0000e+00, 0.0000e+00,
        1.0000e+00],
       ...,
       [7.9998e+04, 2.5600e+02, 1.0000e+00, ..., 0.0000e+00, 1.0000e+00,
        0.0000e+00],
       [7.9999e+04, 2.5600e+02, 1.0000e+00, ..., 1.0000e+00, 0.0000e+00,
        0.0000e+00],
       [8.0000e+04, 2.5600e+02, 1.0000e+00, ..., 1.0000e+00, 0.0000e+00,
        0.0000e+00]])

如何取回插补的数据帧而不是numpy数组


Tags: 数据pandasnptransform数组nanmeanvalues
1条回答
网友
1楼 · 发布于 2024-06-28 11:23:06

我使用以下代码对列平均值进行插补:

for col in cols:
    df[col].fillna(df[col].mean(), inplace = True)

cols是您希望输入的一系列列,例如:

cols = ['col1', 'col2', 'col3']

相关问题 更多 >