Python 在数据帧列表上使用列测试分割

Python 在数据帧列表上使用列测试分割,python,python-3.x,scikit-learn,sklearn-pandas,train-test-split,Python,Python 3.x,Scikit Learn,Sklearn Pandas,Train Test Split,我有12个特征数据帧,命名为X[0],X[1]。。。直到X[11]并与之对应的12个响应数据帧为y[0]到y[11]。我需要使用train\u test\u split函数将它们拆分为train和test数据帧。在处理空列表时(X_列[]、X_测试[]、y_列[]和y_测试[])简单分配: b = 0 while b < 12: X_train[b], X_test[b], y_train[b], y_test[b] = train_test_split(X[b], y[b

我有12个特征数据帧,命名为
X[0]
X[1]
。。。直到
X[11]
并与之对应的12个响应数据帧为
y[0]
y[11]
。我需要使用train\u test\u split函数将它们拆分为train和test数据帧。在处理空列表时
(X_列[]、X_测试[]、y_列[]和y_测试[])
简单分配:

b = 0    
while b < 12:
    X_train[b], X_test[b], y_train[b], y_test[b] = train_test_split(X[b], y[b], random_state=0)
    b = b + 1
b=0
b<12时:
X_序列[b]、X_测试[b]、y_序列[b]、y_测试[b]=序列测试分割(X[b]、y[b]、随机状态=0)
b=b+1
给出此错误:

索引器:列表分配索引超出范围

我不知道如何在这里使用
append()
函数。 有人能帮我吗?

我想你需要:

X_train = []
X_test = []
y_train = []
y_test = []



for i in range(0,12):
    a, b, c, d = train_test_split(X[i], y[i], test_size=0.2, random_state=0)

    X_train.append(a)
    X_test.append(b)
    y_train.append(c)
    y_test.append(d)
我是这样做的:

while b < 12:
    X_t, X_te, y_t, y_te = train_test_split(X[b], y[b], random_state=0)
    X_train.append(X_t)
    X_test.append(X_te)
    y_train.append(y_t)
    y_test.append(y_te)

    b = b + 1
当b<12时:
X_t,X_te,y_t,y_te=列车试验分割(X[b],y[b],随机状态=0)
X_列附加(X_t)
X_测试附加(X_te)
y_train.append(y_t)
y_test.append(y_te)
b=b+1

无需使用for循环。只要写

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

所有要素数据框是否具有相同的要素,或者每个要素数据框是否表示一组不同的要素?