在处理不完整数据(零值)时,可以使用均值或回归方法来填充DataFrame。下面是具体的步骤:
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
df = pd.DataFrame({'A': [1, 2, np.nan, 4, 5],
'B': [np.nan, 2, 3, np.nan, 5],
'C': [1, 2, 3, 4, 5]})
df_filled_mean = df.fillna(df.mean())
均值填充可以通过fillna()
函数结合mean()
函数来实现。这将使用每列的均值来填充缺失值。
def fill_missing_with_regression(df):
for column in df.columns:
missing_values = df[column].isnull()
missing_index = missing_values[missing_values == True].index
known_values = df[column].notnull()
known_index = known_values[known_values == True].index
model = LinearRegression()
model.fit(df.loc[known_index, ['A', 'B', 'C']], df.loc[known_index, column])
df.loc[missing_index, column] = model.predict(df.loc[missing_index, ['A', 'B', 'C']])
return df
df_filled_regression = fill_missing_with_regression(df)
回归方法填充缺失值的步骤如下:
以上是关于如何通过均值或回归方法填充不完整数据(零值)的完善且全面的答案。
领取专属 10元无门槛券
手把手带您无忧上云