ValueError输入包含NaN,无穷大或大于dtype('float64')的值Scitkit了解

时间:2019-11-09 20:29:56

标签: python pandas scikit-learn valueerror

我已经阅读了很多关于此的帖子,找不到我的答案。

import pandas as pd

导入熊猫后,我使用pandas.read_csv读取了一个csv文件。该csv文件具有32列和〜280,000行。

data = pd.read_csv(path)
# Add unique index column to data
data = data.reset_index()

然后我使用pandas.dropna函数确保我的数据没有任何nan值。

dropped_values = data.dropna(inplace=True)
print(dropped_value.dtypes)
# returns all float64 types

还检查了热门的答案

np.any(np.isnan(dropped_values))
# prints false
np.all(np.isfinite(dropped_values))
# prints true

,但我仍然收到

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

...

ValueError                                Traceback (most recent call last)
    <ipython-input-75-f81bb23d00b2> in <module>
     76 
     77 
     ---> 78 for train_index, test_index in strat_split.split(dropped_values, 
     dropped_values["time_attribute"]):

从for循环的行开始

strat_split = StratifiedShuffleSplit(n_splits=1, test_size=0.25, random_state=42)

dropped_values["time_attribute"] = pd.cut(dropped_values["Time"], 
                                       bins=[0., 35000, 70000, 105000, 140000, 175000., np.inf],
                                       labels=[1, 2, 3, 4, 5, 6])


for train_index, test_index in strat_split.split(dropped_values, dropped_values["time_attribute"]):
    strat_train_set = dropped_values.loc[train_index]
    strat_test_set = dropped_values.loc[test_index]

在尝试调用StartifySplit之前,我还尝试过使用SimpleImputer估算数据。 此外,我尝试了在其他帖子的评论中找到的dropna的许多其他变体,但似乎没有任何效果。

这没有意义,因为我已经查看了数据,打印了数据类型,检查它们是nan还是finite,并且一切都给出了正确的答案。

还有其他建议可以尝试吗?

请注意,我更改了帖子中的变量名称以使其更通用。如果我不小心错过了一个字母/字符,那可能只是创建帖子时的一个错误。

0 个答案:

没有答案