如何查找数据集中的值错误?

2024-06-16 09:51:52 发布

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

我正在尝试将.csv表中的数据缩放到0到1之间的范围。我已经多次收到输入数据包含NaN、无穷大或值太大的错误。在

"ValueError: Input contains NaN, infinity or a value too large for dtype('float64')."

到目前为止,我总是能够找出错误的来源,例如,一个空单元格,有时表中有空格,或者字符与UTF-8不兼容。直到现在,我总是能让它成功。在

这次我又收到了错误,但我找不到错误。有没有办法找出哪个数据点是“NaN、无穷大或值太大”?因为我有很多数据点,所以我不能手动浏览。如果你有一个建议,我将非常高兴-即使这只是一个技巧在Excel找到导致错误的值。下面你可以找到我的代码和错误。不幸的是,我不能提供数据集,因为它包含机密信息。在

代码:

import pandas as pd
from sklearn.preprocessing import MinMaxScaler

# Load training data set from CSV file
training_data_df = pd.read_csv("mtth_train.csv")

# Load testing data set from CSV file
test_data_df = pd.read_csv("mtth_test.csv")

# Data needs to be scaled to a small range like 0 to 1 
scaler = MinMaxScaler(feature_range= (0, 1))

# Scale both the training inputs and outputs
scaled_training = scaler.fit_transform(training_data_df)
scaled_testing = scaler.transform(test_data_df)

# Print out the adjustment that the scaler applied to the total_earnings column of data
print("Note: Parameters were scaled by multiplying by {:.10f} and adding {:.6f}".format(scaler.scale_[8], scaler.min_[8]))

# Create new pandas DataFrame objects from the scaled data
scaled_training_df = pd.DataFrame(scaled_training, columns=training_data_df.columns.values)
scaled_testing_df = pd.DataFrame(scaled_testing, columns=test_data_df.columns.values)

# Save scaled data dataframes to new CSV files
scaled_training_df.to_csv("mtth_train_scaled", index=False)
scaled_testing_df.to_csv("mtth_test_scaled.csv", index=False)

错误:

^{pr2}$

Tags: csvtheto数据fromtestdfdata
2条回答
import numpy as np
indices_to_keep = ~df.isin([np.nan, np.inf, -np.inf]).any(1)
df[indices_to_keep]

以防您需要找出有多少值是NA或inf

^{pr2}$

您也可以在这里查看缺少数据的文档https://pandas.pydata.org/pandas-docs/stable/missing_data.html

根据文档,我们可以将inf值设置为不可用

pandas.options.mode.use_inf_as_na = True

然后我们就可以寻找NA值。在

import pandas as pd
pd.isna(df)

使用

df.isnull().sum() 

了解每列中缺失值的总数

相关问题 更多 >