我想从字典中的数据框中添加列,其中键是随机生成的,并且对于数据框的每一行,都应该添加键的值
products = {'Blue Racks': 6, 'HPT': 6, 'Plastic Pallet': 40, 'Trolley': 48}
数据框如下:
tag epc code Location
0 0 E200001B2003006506902124 PPRFP.1T22AD0001 Goa
1 1 E200001B2001007523803291 PPRFP.1T22AD0002 Goa
2 2 E200001B2003005907402139 PPRFP.1T22AD0003 Goa
3 3 E200001B200302290510CF16 PPRFP.1T22AD0004 Goa
4 4 E200001B20010114231054DD PPRFP.1T22AD0005 Goa
我该怎么做 ?
预期结果:
tag epc code Location Blue Racks HPT Plastic Pallet
E200001B2003006506902124 PPRFP.1T22AD0001 Goa 6 6 40
E200001B2001007523803291 PPRFP.1T22AD0002 Goa 6 6 40
E200001B2003005907402139 PPRFP.1T22AD0003 Goa 6 6 40
E200001B200302290510CF16 PPRFP.1T22AD0004 Goa 6 6 40
E200001B20010114231054DD PPRFP.1T22AD0005 Goa 6 6 40
您可以从字典中制作 DataFrame 并使用 cross merge
:
df2 = df.merge(pd.DataFrame(products, index=[0]), how='cross')
# or
# df.merge(pd.DataFrame([products]), how='cross')
输出:
tag epc code Location Blue Racks HPT \
0 0 E200001B2003006506902124 PPRFP.1T22AD0001 Goa 6 6
1 1 E200001B2001007523803291 PPRFP.1T22AD0002 Goa 6 6
2 2 E200001B2003005907402139 PPRFP.1T22AD0003 Goa 6 6
3 3 E200001B200302290510CF16 PPRFP.1T22AD0004 Goa 6 6
4 4 E200001B20010114231054DD PPRFP.1T22AD0005 Goa 6 6
Plastic Pallet Trolley
0 40 48
1 40 48
2 40 48
3 40 48
4 40 48
df2 = (df.rename(columns=lambda x: x+'_original' if x in products else x)
.merge(pd.DataFrame(products, index=[0]), how='cross')
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句