我有一个for循环在输入数据帧中的行上迭代。对每一行进行搜索。输出返回5行,我想将这些行附加为输入数据帧的新列。
duplicate_materials
0 [BIAS CUT FABRIC 50 X 1600 MM, RBN20 (000000000001065341)]
1 [BIAS CUT FABRIC 40 X 1600 MM, RBN20 (000000000001061715)]
2 [BIAS CUT FABRIC 40 X 1100 MM, RBN20 (000000000001059946)]
3 [BIAS CUT FABRIC 40 X 1200 MM, RBN20 (000000000001059947)]
4 [BIAS CUT FABRIC 50 X 1300 MM (000000000001005101)]
这5行应该作为5个新列附加到输入数据帧中搜索到的行中。在下面的数据帧中,上面的5行应该列在第一列后面,以显示这是搜索的结果。
material_id material_description duplicate_materials_0 duplicate_materials_1 duplicate_materials_2 duplicate_materials_3 duplicate_materials_4
1 000000000001065341 FABRIC CUT BIAS, RBN20 50 X 1600 MM
编辑:通过解决
for i, row in results.iterrows():
df_test[f'duplicate_materials_{i}'] = results['duplicate_materials'][i]
duplicate_materials
列是否为dtype对象?这对于将列表插入单个单元格是必要的。您可以使用以下命令进行检查:
df.dtypes
如果没有,则可以手动设置数据类型。
df['duplicate_materials'] = df['duplicate_materials'].astype('object')
更多细节:Python Panda将列表插入单元格
附言:您提到使用for循环对行进行迭代。也许可以通过将搜索操作应用于整个数据帧来避免这种情况。