Python ValueError输入包含NaN、无穷大或对于数据类型(';float64';)Scitkit学习太大的值

Python ValueError输入包含NaN、无穷大或对于数据类型(';float64';)Scitkit学习太大的值,python,pandas,scikit-learn,valueerror,Python,Pandas,Scikit Learn,Valueerror,我已经阅读了这么多关于这一点的帖子,找不到我的答案 import pandas as pd 导入熊猫后,我使用pandas.read\u csv读取csv文件。csv文件有32列和约280000行 data = pd.read_csv(path) # Add unique index column to data data = data.reset_index() 然后我使用pandas.dropna函数确保我的数据没有任何nan值 dropped_values = data.dropna(

我已经阅读了这么多关于这一点的帖子,找不到我的答案

import pandas as pd
导入熊猫后,我使用pandas.read\u csv读取csv文件。csv文件有32列和约280000行

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').

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

这是没有意义的,因为我已经查看了数据,打印了数据类型,检查它们是nan还是有限的,所有的东西都给出了正确的答案

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


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

我还没有尝试将结果指定给新的数据帧。你能在不在场的情况下尝试吗=真的?inplace=True用于更新正在执行操作的同一数据帧。因为您正在将它分配给一个新变量,所以我认为没有必要使用它。不确定,如果它能解决它,但值得一试。最后,您是否可以共享一个可复制的样本?是的,我实际上最初是在没有inplace=True的情况下尝试的。我把它加进去是因为我看到其他一些帖子说这是他们成功的原因。对于示例,您希望看到什么?像data.head()之类的东西来打印前几行?还是isnan和isfinite调用的结果?我明白了。嗯,我需要一些可以在笔记本电脑上复制的东西。更多信息可以在这里找到-
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"]):
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]