我已经创建了列标签列表。
columns_labels = ['Phase', 'Nodes', 'Activation Func', 'Batch Size', 'Layers', 'Optimizers', 'Weight Initializers', 'Dropout']
for i in range(1, 101):
epoch_num = 'E'+str(i)
columns_labels.append(epoch_num)
现在,我有一个列表列表,其中仅包含“节点”,“激活功能”,“批量大小”,“层”和时期1-100的数据。看起来像这样:
[50, 'LeakyReLU', 32, 2, 0.1867888888888889, 0.24796666666666667, 0.26335555555555556, 0.27434444444444445, 0.28184444444444445, 0.29123333333333334, 0.29535555555555554, 0.3013111111111111, 0.3076111111111111, ........... 0.3350444444444444]
我需要在“节点”,“激活函数”,“批量大小”和“层”列中的每个列表中删除前4个值,并在生成的E1-E100列中其余100个值中删除上面的for循环。我该怎么办?
注意:我最终将数据添加到数据框,该数据框将包含“优化程序”,“重量初始化程序”,“退出”的值。当前数据中这些列的值不存在。我可以保留它们为空白或填充预定义的值。
答案 0 :(得分:1)
您可以将每一行转换为字典,然后使用df.append()
将其添加到现有数据框中:
selected_columns = ['Nodes', 'Activation Func', 'Batch Size', 'Layers', ...]
rows_to_add = [[50, 'LeakyReLU', 32, 2, ...], [50, 'LeakyReLU', 16, 1, ...], ...]
for row in rows_to_add:
dictionary = dict(zip(selected_columns, row))
df = df.append(dictionary, ignore_index=True)
您可以从selected_columns
构建columns_labels
。