Python 错误:传递列表喜欢。不再支持带有任何缺少标签的loc或[]

Python 错误:传递列表喜欢。不再支持带有任何缺少标签的loc或[],python,pandas,Python,Pandas,发现这个代码片段基本上增加了我的负面评论,从而更好地训练我的模型。当我去运行它时,我得到了这个错误。看起来在idx附近。有人有好的解决办法吗 传递列表喜欢。不再支持带有任何缺少标签的loc或[] " 从sklearn.utils导入shuffle 将numpy作为np导入 标签,num=np.unique(y\u列,返回\u计数=True) #打印(标签) u=最小值(标签) 初始值=1 #设置过采样单元的所需大小 maxcnt=np.int(max(num)/2) 对于标签,zip中的n(标签

发现这个代码片段基本上增加了我的负面评论,从而更好地训练我的模型。当我去运行它时,我得到了这个错误。看起来在idx附近。有人有好的解决办法吗

传递列表喜欢。不再支持带有任何缺少标签的loc或[] "

从sklearn.utils导入shuffle
将numpy作为np导入
标签,num=np.unique(y\u列,返回\u计数=True)
#打印(标签)
u=最小值(标签)
初始值=1
#设置过采样单元的所需大小
maxcnt=np.int(max(num)/2)
对于标签,zip中的n(标签,数量):
x0=X\U列[y\U列==LAL]
y0=y_列[y_列==标签]
#打印(x0)
保持=最大值
打印(保留)
而保持>=n;
如果标签==u,初始值==1;
X_列=x0
y_列=y0
剩余-=n
初始值=0
其他:
X_列=np。连接((X_列,x0),轴=0)
y_列=np。连接((y_列,y0),轴=0)
剩余-=n
如果保持>0且保持
如果没有一些数据,很难确定,但是错误意味着当你做
x0[idx]
y0[idx]
时,
idx
的一些元素不是x0或y0的索引,根据它们的构建方式,似乎可以公平地假设
x0
y0
不是从0到
len(y0)的索引,哪些是
idx
元素的边界。可能尝试
idx=np.random.choice(y0.index,resident,replace=False)
,像这样你从没有数据的y0索引中直接选取元素,这很难说清楚,但是错误意味着当你做
x0[idx]
y0[idx]
时,
idx
的一些元素不是x0或y0的索引,根据上面构建它们的方式,可以公平地假设
x0
y0
不是从0到
len(y0)
的索引,这是
idx
元素的边界。也许可以尝试
idx=np.random.choice(y0.index,remaine,replace=False)
,就像这样,您可以从y0索引中直接选择存在的元素
from sklearn.utils import shuffle
import numpy as np

labels, num = np.unique(y_train, return_counts=True)
#print(labels)
u=min(labels)
intial = 1

#set the desired size of the oversampled cells
maxcnt = np.int(max(num)/2)

for labl, n in zip(labels, num):
    x0 = X_train[y_train==labl]
    y0 = y_train[y_train==labl]
    # print (x0)

    remain = maxcnt
    print (remain)
    while remain >= n;
        if label == u and initial == 1;
            X_Train = x0
            y_Train = y0
            remain -= n
            initial = 0
        else:
            X_Train = np.concatenate((X_Train, x0), axis=0)
            y_Train = np.concatenate((y_Train, y0), axis=0)
            remain -= n
    if remain > 0 and remain < n:
        idx = np.random.choice(np.arange(len(y0)), remain, replace=False)
       #print(idx)
        X_Train = np.concatenate((X_Train, x0[idx]), axis=0)
        y_Train = np.concatenate((y_Train, y0[idx]), axis=0)
        remain -= n
X_Train, y_Train = shuffle(X_Train, y_Train)
np.unique(X_Train, return_counts=True)