行中缺失数据的方法?
Method for missing data in rows?
我正在开始编程。我想通过将其替换为其列的平均值而不是其 row-mean-value 来处理丢失的数据。
我正在尝试从 Excel 数据表中 pre-process 一些数据,类似于如下所示的数据(第一列,没有标题的,只是 numbering/index; 不是真正的列):
A B C D E F
0 100 NaN 5.0 1.0 5 a
1 200 5.0 NaN 3.0 3 a
2 300 4.0 NaN 5.0 6 a
3 400 5.0 4.0 7.0 9 b
4 500 5.0 2.0 NaN 2 b
5 600 4.0 3.0 0.0 4 b
关键是我想将 NaN 替换为其列的平均值。我正在使用 pandas 从数据表中提取值。然后我尝试使用 sklearn.impute.SimpleImputer 来处理这些丢失的数据,但它只给出了行的平均值。
dataset = pd.read_excel(io=file_name, sheet_name=sheet)
y = dataset.iloc[:, 0].values
X = dataset.iloc[:, 1:-1].values
from sklearn.impute import SimpleImputer
imputer = SimpleImputer(missing_values = np.nan, strategy = 'mean')
imputer = imputer.fit(X[:, :])
X[:, :] = imputer.transform(X[:, :])
有谁知道我怎样才能有效地做到这一点? class 有什么方法可以处理这种情况吗? (我不介意进入另一个图书馆)。
非常感谢
如果您想用列的平均值填充 NaN
个值,您可以简单地使用:
data = {'A':[100,200,300,400,500,600],'B':[np.nan,5,4,5,5,4],'C':[5,np.nan,np.nan,4,2,3],'D':[1,3,5,7,np.nan,0]}
df = pd.DataFrame(data)
df = df.fillna(df.mean())
print(df)
输出:
A B C D
0 100 4.6 5.0 1.0
1 200 5.0 3.5 3.0
2 300 4.0 3.5 5.0
3 400 5.0 4.0 7.0
4 500 5.0 2.0 3.2
5 600 4.0 3.0 0.0
我正在开始编程。我想通过将其替换为其列的平均值而不是其 row-mean-value 来处理丢失的数据。
我正在尝试从 Excel 数据表中 pre-process 一些数据,类似于如下所示的数据(第一列,没有标题的,只是 numbering/index; 不是真正的列):
A B C D E F
0 100 NaN 5.0 1.0 5 a
1 200 5.0 NaN 3.0 3 a
2 300 4.0 NaN 5.0 6 a
3 400 5.0 4.0 7.0 9 b
4 500 5.0 2.0 NaN 2 b
5 600 4.0 3.0 0.0 4 b
关键是我想将 NaN 替换为其列的平均值。我正在使用 pandas 从数据表中提取值。然后我尝试使用 sklearn.impute.SimpleImputer 来处理这些丢失的数据,但它只给出了行的平均值。
dataset = pd.read_excel(io=file_name, sheet_name=sheet)
y = dataset.iloc[:, 0].values
X = dataset.iloc[:, 1:-1].values
from sklearn.impute import SimpleImputer
imputer = SimpleImputer(missing_values = np.nan, strategy = 'mean')
imputer = imputer.fit(X[:, :])
X[:, :] = imputer.transform(X[:, :])
有谁知道我怎样才能有效地做到这一点? class 有什么方法可以处理这种情况吗? (我不介意进入另一个图书馆)。
非常感谢
如果您想用列的平均值填充 NaN
个值,您可以简单地使用:
data = {'A':[100,200,300,400,500,600],'B':[np.nan,5,4,5,5,4],'C':[5,np.nan,np.nan,4,2,3],'D':[1,3,5,7,np.nan,0]}
df = pd.DataFrame(data)
df = df.fillna(df.mean())
print(df)
输出:
A B C D
0 100 4.6 5.0 1.0
1 200 5.0 3.5 3.0
2 300 4.0 3.5 5.0
3 400 5.0 4.0 7.0
4 500 5.0 2.0 3.2
5 600 4.0 3.0 0.0