如何在 Pandas 的循环中创建索引列名

我需要创建一个函数来为新数据集自动分配一些新列名。


原因是我需要某种方式将我的预测绑定到我的初始数据集。Sklearn 没有任何简单的方法可以做到这一点。


我已经尝试创建一个函数,但是它只打印一个错误:


ValueError: 传递值的形状是 (1440, 90),索引意味着 (1440, 1)


这意味着我在定义新列名时没有正确使用该函数。


def column_printing(x):

    i=0

    for i in range(x):

        print('prediction', i+1)

        i+1

resultTestDataset = pd.DataFrame(y_test, columns=[column_printing(predict_length)])

让我们说:


predict_length = 3

y_test = [5,6,7],

         [3,2,1]

我想要一个如下所示的数据框:


prediction1, prediction2, prediction3

5,6,7 

3,2,1


浮云间
浏览 223回答 2
2回答

慕少森

如果我可以假设您y_test是numpy array.您可以使用以下内容:predict_length = 3y_test = np.reshape(np.array([5,6,7,3,2,1]), (2,3))df = pd.DataFrame(y_test, columns=['predicition{}'.format(x+1) for x in range(predict_length)])print(df)   predicition1  predicition2  predicition30             5             6             71             3             2             1如果你的python版本>=3.6,我们可以使用 f-stringspredict_length = 3y_test = np.reshape(np.array([5,6,7,3,2,1]), (2,3))df = pd.DataFrame(y_test, columns=[f'predicition{x+1}' for x in range(predict_length)])print(df)   predicition1  predicition2  predicition30             5             6             71             3             2             1

莫回无

这会有所帮助# a simple function to do the column name creationcolumn_print = lambda col_len : ['prediction' + str(i+1) for i in range(col_len)]y_test = [5,6,7],[3,2,1]y_test = np.array(y_test) # convert y_test to a numpy array so you can use the shape #methodsize_y = y_test.shaperesultTestDataset = pd.DataFrame(y_test, columns=column_print(size_y[1]))print(resultTestDataset)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python