为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

浮云间 2021-12-26 15:39:18
我需要创建一个函数来为新数据集自动分配一些新列名。原因是我需要某种方式将我的预测绑定到我的初始数据集。Sklearn 没有任何简单的方法可以做到这一点。我已经尝试创建一个函数,但是它只打印一个错误:ValueError: 传递值的形状是 (1440, 90),索引意味着 (1440, 1)这意味着我在定义新列名时没有正确使用该函数。def column_printing(x):    i=0    for i in range(x):        print('prediction', i+1)        i+1resultTestDataset = pd.DataFrame(y_test, columns=[column_printing(predict_length)])让我们说:predict_length = 3y_test = [5,6,7],         [3,2,1]我想要一个如下所示的数据框:prediction1, prediction2, prediction35,6,7 3,2,1
查看完整描述

2 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

如果我可以假设您y_test是numpy array.


您可以使用以下内容:


predict_length = 3

y_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  predicition3

0             5             6             7

1             3             2             1

如果你的python版本>=3.6,我们可以使用 f-strings


predict_length = 3

y_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  predicition3

0             5             6             7

1             3             2             1


查看完整回答
反对 回复 2021-12-26
?
莫回无

TA贡献1865条经验 获得超7个赞

这会有所帮助


# a simple function to do the column name creation

column_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 

#method

size_y = y_test.shape

resultTestDataset = pd.DataFrame(y_test, columns=column_print(size_y[1]))

print(resultTestDataset)


查看完整回答
反对 回复 2021-12-26
  • 2 回答
  • 0 关注
  • 222 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信