熊猫 dropna()

时间:2021-06-24 06:24:01

标签: python pandas scikit-learn

enter image description here

我正在使用这样的数据。为了利用 LightBGM,我使用了 X=X.dropna(),以防止以后出现与“输入内容 NaN、Infinity 或对于 dtype('float64') 而言太大的值”相关的错误。

X_train, X_test, y_train, y_test=train_test_split(X, y, test_size=0.2,
random_state=333 )

在那之后,我使用了 train_test_split 函数。然而,

ValueError: Found input variables with inconsistent numbers of samples: [2348, 2356]" 

导致的错误。我认为 X=X.dropna() 犯了错误,因为它消除了不必要的 NaN 值。

 X.shape
(2348, 15)
y.shape
(2356,)

所以为了解决这个问题,当我打印出每个“形状”时,打印出上述结果。但我不知道对我的数据采取什么行动。我认为这是因为 X 和 y 的形状值有大约 8 的差异。有什么好的办法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

您收到此错误是因为您仅从 nan 中删除 X 值。因此,X 的行数少于 Y。但理想情况下,它们应该相等。因此,您首先必须合并 Xy,然后删除 NaNs

train = pd.concat([X, y], axis=1, join='inner')
train = train.dropna()

y = train['target_column_name']
X = train.loc[:, train.columns != 'target_column_name']

X_train, X_test, y_train, y_test=train_test_split(X, y, test_size=0.2, random_state=333)