reset_index(drop=True)

版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/yukyin https://blog.csdn.net/yukyin/article/details/83098203

今天必须写个博文mark一下了,错了不知道几百次的弱智问题。

train_x = data[data.label != -1].reset_index(drop=True)#注意!否则报错
train_y = train_x.pop('label').values

train_index = train_x[train_x.A == 2018].index.tolist()
test_index = train_x[train_x.B == 1016].index.tolist()

print(train1_x[train_index], train1_y[train_index])
print(train1_x[test_index], train1_y[test_index])
train1_x是对trainx的列进行某些操作得到的,进行过reset_index(drop=True),所以index连续。
如:print(train1_x.index.tolist()) #[1,2,3,4]

而train_x = data[data.label != -1],如果不进行reset_index(drop=True),index会变得不连续。
如:print(train_x.index.tolist()) #[1,2,4,5]

在后面需要对train1_x进行操作时,如果前面不对train_x进行reset_index(drop=True),那么train1_x的index找不到5会报错。

猜你喜欢

转载自blog.csdn.net/yukyin/article/details/83098203