我已经阅读了很多关于此的帖子,找不到我的答案。
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,并且一切都给出了正确的答案。
还有其他建议可以尝试吗?
请注意,我更改了帖子中的变量名称以使其更通用。如果我不小心错过了一个字母/字符,那可能只是创建帖子时的一个错误。