将数据帧中的单元格值增加另一个数据帧单元格中写入的量



给定Pandas中的源和目标数据帧,对于关键列上的每一个匹配,我需要按照源数据帧的一列中指定的数量更新目标数据帧中的一列。

在下面的示例中,源数据帧和目标数据帧分别是RecetteDFInventaireDF。两者共有的关键列是Codes interne。目标中的Quantite Reserver必须在匹配密钥上使用来自源的Quantite requise的值递增。

我已经让它发挥了作用,但它真的不是最佳的。

到目前为止,我的功能如下:

def on_commencer(self,event):
Range = (self.NumSerie.GetValue())
TankAsk = TankRange[Range]
# load source DF
Recettedata = pull_sheet_data(SCOPES,RECETTES_SHEET_ID,TankAsk)
RecetteDF = pd.DataFrame(Recettedata[1:], columns=Recettedata[0])
# load target DF
Inventairedata = pull_sheet_data(SCOPES,INVENTAIRE_SHEET_ID,RANGE_TOTAL)
InventaireDF = pd.DataFrame(Inventairedata[1:], columns=Inventairedata[0])
CurrentFrame.Show()
CurrentFrame.Identifiant.SetLabel('Job en Cour :'+Range)
self.NumSerie.Clear()
# this is the part that can be made optimal:
for index2, y in enumerate(RecetteDF['Codes interne']):
for index1, x in enumerate(InventaireDF['Codes interne']) :
if x == y :
InventaireDF.at[index1,'Quantite Reserver'] = float(InventaireDF.at[index1,'Quantite Reserver']) + float(RecetteDF.at[index2, 'Quantite requise'])
service = build('sheets', 'v4', credentials=creds)
data = [InventaireDF.columns.values.tolist()]
data.extend(InventaireDF.values.tolist())
value_range_body = {"values": data}
service.spreadsheets().values().update(spreadsheetId = INVENTAIRE_SHEET_ID, range = RANGE_TOTAL, valueInputOption = "USER_ENTERED", body = value_range_body).execute()
self.Close()

这是InventaireDF的CSV版本。我已经编辑掉了前420行,因为我的示例不需要它们:

,Codes interne,Description,Quantite en Stock,Quantite Reserver,Quantite Disponible,Quantite a Commander,Format,Specification,Localisation
421,COLLET11/2,COLLET 1 1/2 CLAMP,-4,0.0,-4,20,,,
422,BARB11/2,BARB 1 1/2,-6,0.0,-6,20,,,
423,SAC,"SAC K SEAL AVEC FERMOIR, 10 X 10, 2 MIL (1000/BTE)",1,0.0,1,20,,,
424,LAMESQUEEGEE,LAME POUR SQUEEGEE DE 22'',0,0.0,0,20,,,
425,BREC100/300,"BOUTS REC100 A REC 300 (HR, GA11, 48188 X 24 )",91,2.0,91,0,,,ACIER
426,BREC330/500,"BOUTS REC330 A REC500 (HR, GA11, 60188 X 31625)",170,0.0,170,0,,,ACIER
427,60X75,"CORPS REC250 (GA11) (60 X 75, )",32,0.0,32,0,,,ACIER
428,72X75,"CORPS REC300 (HR, GA11, 72 X 75,)",20,0.0,20,0,,,ACIER
429,72X96,"HR, CORPS REC500 (GA11, 72 X 96000",96,0.0,96,0,,,ACIER
430,T540,"TOP TKB540 HR (G3/16, 24000 X 52000)",10,0.0,10,0,,,ACIER
431,24X64,"TOP TKB540X2 (GA3/16, 24 X 64)",10,0.0,10,0,,,ACIER
432,24X73,"TOP TKB800 (HR, GA3/16, 24000 X 73000)",14,0.0,14,0,,,ACIER
433,24X85,"TOP TKB800X2 (HR, GA3/16, 24 X 85)",18,0.0,18,0,,,ACIER
434,T1140,"TOP TKB1140/TKB1500 (GA3/16, 365 X 73000)",65,0.0,65,0,,,ACIER
435,T1140X2,"TOP TKB1140X2/1500X2 (GA3/16, 36 X 85)",66,0.0,66,0,,,ACIER
436,T1600,"TOP TKB1600 (GA3/16, 36 X 96)",8,0.0,8,20,,,ACIER
437,T1600X2,TOP TKB1600X2 (GA3/16)( 36 X 108),17,0.0,17,0,,,ACIER
438,4X8,"FEUILLE 11GA, 48 X 96",63,1.0,63,0,,,ACIER
439,60X99.5,"CORPS TK540 ET TKB800 GA11, 60 X 995",33,0.0,33,0,,,ACIER
440,60X109.5,"CORPS TKB1140 (GA11, 60X 1095 )",82,0.0,82,0,,,ACIER
441,60X125.5,"CORPS TKB1500 (HR, GA11, 60 X 125500)",17,0.0,17,0,,,ACIER
442,B1140,"BOUT TKB1140/1600 (GA11, 34500 X 34750)",51,0.0,51,0,,,ACIER
443,B540/800,"BOUT TKB540/TKB800 (HR, GA11, 24500 X 34500)",73,0.0,73,0,,,ACIER
444,METALD,METAL DEPLOYE 4 X 8,6,0.0,6,20,,,ACIER
445,B1500,"BOUTS TKB1500 (GA11) 40X38,",80,0.0,80,0,,,ACIER
446,60X96,"CORPS REC415, FEUILLE HR, 11GA 60 X 96000",26,0.0,26,0,,,ACIER
447,48X75,"FEUILLE ACIER, REC200, HR, 11GA, 48X75",6,0.0,6,20,,,ACIER
448,36X75.000,"HR, FEUILLE REC150, 11GA, 36 X 75000",-8,0.0,-8,20,,,ACIER
449,30X88,"COPRS 800-U, HR, 11G, 30000 X 88000",10,0.0,10,0,,,ACIER
450,30X55.25,"BOUT 800-U, HR, 11 GA, 30000X55250",20,0.0,20,0,,,ACIER
451,30X76,"CORPS 600-U, HR, 11GA, 30000 X 76000",10,0.0,10,0,,,ACIER
452,30X43.25,"BOUT 600-U, HR, 11GA, 30000 X 43250",9,0.0,9,20,,,ACIER
453,48X87,"FEUILLE 11GA, HR, REC250-U, 48 X 87000",43,0.0,43,0,,,ACIER
454,24X603/16,"BOUT REC250-U,, HR, 24000 X 60 3/16",65,0.0,65,0,,,ACIER
455,ATTACHE125,RELIAGE POUR RESERVOIR,0,0.0,0,20,,,ACIER
456,PATTE30,PATTE 30'',548,0.0,548,0,,,ACIER
457,60X120,"FEUILLE 11GA, 60 X 120",0,0.0,0,20,,,ACIER
458,72X83.000,CORPS 1600 72 X 83,0,0.0,0,20,,,ACIER
459,60X144,"FEUILLE 144, HR, 60 X 144",3,0.0,3,20,,,ACIER
460,C125,"CORPS REC125, HR, 11GA, 74750 X 34000",66,0.0,66,0,,,ACIER
461,B125,"BOUT REC125, HR, 11GA, 53750 X 18000",109,0.0,109,0,,,ACIER
462,48X116,"FEUILLE HR, 11GA, 48 X 116",0,0.0,0,20,,,ACIER
463,48X35,"FEUILLE 11GA, HR, 48''X 35''",0,0.0,0,20,,,ACIER
464,MAN1/4,1/4 MANCHON DEMI 3000AF POUR DW,213,0.0,213,0,,,ARMOIRE
465,VALVE1/4,VALVE 1/4 BICYCLE POUR DW,513,0.0,513,0,,,ARMOIRE
466,CADRAN,"SMANOMETRE 30"" HG/0 VAC -100/0 KPA POUR DW",58,0.0,58,0,,,ARMOIRE
467,COUDE3/4,COUDE 3/4 POUR DW,59,0.0,59,0,,,ARMOIRE
468,TTKB,T MALE FEMELLE FEMELLE 1/4 PO POUR TKB-REC CAN,33,0.0,33,0,,,ARMOIRE
469,TAM,T FEMELLE FEMELLE MALE 1/4 POUR AMERICAINE,47,0.0,47,0,,,ARMOIRE
470,LINER,LINER 15' 0035,13,0.0,13,0,,,ARMOIRE
471,PLIN,PLASTIQUE INTÉRIEUR POUR CASQUE MILLER PQT 5,16,0.0,16,0,,,CONSOM
472,PMASSE,PRISE DE MASSE 300A (GROUND),15,0.0,15,0,,,CONSOM
473,EP45,ELECTRODE POWERMAX 45 (PETIT PLASMA),42,0.0,42,0,,,CONSOM
474,NP45,NOZZLE POWERMAX 45 (PETIT PLASMA),43,0.0,43,0,,,CONSOM
475,EARPLUG,BOUCHON D'OREILLE E-A-R CLASSIC,5,0.0,5,20,,,CONSOM
476,BLU-YS50,PINCE MIG HELPER,2,0.0,2,20,,,CONSOM
477,RHTGK,RETAINING HEAD TREGASKISS,36,0.0,36,0,,,CONSOM
478,GREENB,"DISQUE 5""X7/8 GR40 GREENBACK",318,0.0,318,0,,,CONSOM
479,BMTGK,BUSE MIG 401-6-62 TREGASKISS,136,0.0,136,0,,,CONSOM
480,PLEX,PLASTIQUES EXTÉ MILLER ELITE( PQT 5),49,0.0,49,0,,,CONSOM
481,TCTGK,"TUBE CONTAC 035"" TREGASKISS","1,129",0.0,"1,129",0,,,CONSOM
482,FIL035X500,FIL A SOUDER ESAAB 0035 BARIL 250KG (550 LB),7,0.0,7,20,,,CONSOM
483,FIL035X44,FIL A SOUDER ESAAB 0035 X 18KG (3960 LB),75,0.0,75,0,,,CONSOM
484,LUN,LUNETTE DE PROTECTION 3M SF201AS BTE 20 UNITÉS,10,0.0,10,0,,,CONSOM
485,BIGBLUE,BIG BLUE,0,0.0,0,20,,,CONSOM
486,GSOUD,GANT SOUDEUR BLUE CLAD,41,0.0,41,0,,,CONSOM
487,LEAKL,LEAK LOCK,13,0.0,13,0,,,CONSOM
488,PPLASMA,PETIT PLASMA PROTECTEUR,20,0.0,20,0,,,CONSOM
489,BMHDTGK,BUSE MIG HD 5/8'' 1/8R TREGASKISS,4,0.0,4,20,,,CONSOM
490,LUNSV,LUNETTE DE SOUDAGE VERTE,4,0.0,4,20,,,CONSOM
491,GTGX,GACHETTE TGX,0,0.0,0,20,,,CONSOM
492,MEGALOC,MASTIC TOUT-USAGE POUR FILETAGE,20,0.0,20,0,,,CONSOM
493,BUSEGP,BUSE POUR GROS PLASMA (TIPS),10,0.0,10,0,PAQUET DE 5,,CONSOM
494,ANTISPAT,ANTI SPATTER 20L,5,0.0,5,20,,,CONSOM
495,LOCTITE,"LOCTITE THREADLOCKER 243, ITEM 1330906",0,0.0,0,20,,,CONSOM
496,DMM3M,"DEMI MASQUE MOYEN, 3M",0,0.0,0,20,,,CONSOM
497,CUBITRON,"CUBITRON II DISQUE A GRINDER T27, 5'' X 1/4'' X7/8''",95,0.0,95,0,,,CONSOM
498,EARPLUGR,BOUCHON OREILLE ROSE ET JAUNE (BT 200),4,0.0,4,20,,,CONSOM
499,MANCHESOUD,MANCHE DE SOUDEUR NOIR ET BLEU,2,0.0,2,20,,,CONSOM
500,GANTMAXXL,GANTS MAXIFLEX ULTIMATE E XTRA-LARGE,94,0.0,94,0,,,CONSOM
501,MIL-256174,HARNAIS MILLER 2E GENERATION POUR CASQUE A SOUDER,5,0.0,5,20,,,CONSOM
502,PMA,PROTECTEUR DESSUS DE MAIN ALUMINISE/CUIR,24,0.0,24,0,,,CONSOM
503,MANCHES,MANCHETTES CUIR 24'' AVEC ATTACHES,0,0.0,0,20,,,CONSOM
504,BANDEAU,BANDE DE TETE (SWEATBANT PQT 2),"44,500",0.0,"44,500",0,,,CONSOM
505,TRE-40420,DIFFUSEUR 404-20 TREGASKISS,10,0.0,10,0,,,CONSOM
506,HYP-220713,"RETAINING CAP, POWERMAX 45",7,0.0,7,20,,,CONSOM
507,THD-98212,"DRAG TIP, 100AMP",15,0.0,15,0,,,CONSOM
508,THD-98215,ELECTRODE GROS PLASMA 20-120 AMP,23,0.0,23,0,PAQUET DE 5,,CONSOM
509,GANTHL,GANT DE TRAVAIL HIVER LARGE (ROUGE),1,0.0,1,20,,,CONSOM
510,BER-40560X,"SWAN NECK 400A, 60 DEG TGX GOOSENECK",1,0.0,1,20,,,CONSOM
511,3M8210,MASQUE 3M CONTRE PARTICULES BLANC (20/BTE),0,0.0,0,20,,,CONSOM
512,CUT7,7'' X 045 CUT-OFF WHEEL 7/8 AH,0,0.0,0,20,,,CONSOM
513,BUSESAPR,BUSES 3/8 ANTIGOUTTE,-39,0.0,-39,20,,,CONSOM
514,SE0180,MASQUE BLANC CONTRE LES PARTICULES 3M 8210,0,0.0,0,20,,,CONSOM
515,GANTC,GANT DE CAHOUTCHOUC SOLVEX 37-155 (LARGE),0,0.0,0,20,,,CONSOM
516,KGR-342498,CUTTING DISK 5'',298,0.0,298,0,,,CONSOM
517,L033-021,AIGUILLE DE NETTOYAGE DE BEC (PQT 12),0,0.0,0,20,,,CONSOM
518,068 6922,KIT DE NETTOYAGE POUR PEINTURE,0,0.0,0,20,,,CONSOM
519,GSENDURA,GANT DE SOUDEUR ENDURA,11,0.0,11,0,,,CONSOM
520,BER-402-11,GOOSENECK INSULATOR 402-1102,0,0.0,0,20,,,CONSOM
521,MIL-253882,HELMET BIB WELD MIL-253882,0,0.0,0,20,,,CONSOM
522,BFS,BIONIC FACE SHIELD SNC-SAK423,0,0.0,0,20,,,CONSOM
523,BER-40420,TOUGH LOCK GAZ DIFFUSER BER-40420,0,0.0,0,20,,,CONSOM
524,BER-RW1100022,TOUGH GUN NECK ASSEMBLY 225° BER-RW1100022,0,0.0,0,20,,,CONSOM
525,DRIVEROLL,DRIVE ROLL 0035 LIN-KP1696035S,0,0.0,0,20,,,CONSOM
526,NB25,VERNIS AU NITRURE ANTI-ADHERENT NB25,57,0.0,57,0,,,CONSOMM
527,GRAISSE,GRAISSE VALPLEX TOUT-USAGE 2 KG,1,0.0,1,20,,,CONSOMM
528,GNL,GANT NITRIL NOIR LARGE POWDER FREE (PEINTURE),0,0.0,0,20,,,CONSOMM
529,3M6001,CARTOUCHE CONTRE VAPEUR ORGANIQUE 3M 6001 2/PQT,17,0.0,17,0,,,CONSOMM
530,3M2091,CARTOUCHE FILTRE A PARTICULE P100 (2/PQT),1,0.0,1,20,,,CONSOMM
531,VENTCAP4,COUPOLE 4 PO VENT CAP,254,1.0,254,0,"4""",,ENTREPOT
532,VENTCAP5,"COUPOLE 5"" VENT CAP",70,0.0,70,0,,,ENTREPOT
533,VUP4,PIECE POUR EVENT URGENCE PERFORE 4'',771,0.0,771,0,"3875"" OD 406""ID",FITTING,ENTREPOT
534,VUP3,PIECE POUR EVENT D'URGENCE 3'',503,1.0,503,0,,FITTING,ENTREPOT
535,GASKET 3.775,"GASKET 3.775"" VENT D'URGENCE","1,462",1.0,"1,462",0,,,ENTREPOT
536,GASKET 4.75,GASKET 4.75 POUR VENT D'URGENCE,440,0.0,440,0,,FITTING,ENTREPOT
537,MAMELON 4X6,MAMELON 4X6 POUR VENT D'URGENCE,68,0.0,68,0,,,ENTREPOT
538,MAM3X6,MAMELON 3X6 STD ACIER NOIR S/CONT,121,0.5,121,0,,,ENTREPOT
539,NUTS3/8,NUTS 3/8,"11,400",0.0,"11,400",0,,,ENTREPOT
540,GRAPRD,GROSSE ROUE ARRIERE POUR PRD (6X2 POUR WASTER OIL NOIR),83,0.0,83,0,,,ENTREPOT
541,RCBSB,ROUE POUR CACHE BARIL/ETABLI SANS BARRURE,56,0.0,56,0,,,ENTREPOT
542,RDJ,ROUE BLEUE 3 X 1 1/4 POUR DRAIN JAUNE/PRD30,45,0.0,45,0,,,ENTREPOT
543,PRAPRD,ROUE AVANT POUR PRD (PETITE) / ROUE SWIVLE POUR WASTE OIL,39,0.0,39,0,,,ENTREPOT
544,BALLV3/4,BALL VALVE 3/4 PO MPT,615,0.0,615,0,,,ENTREPOT
545,BALLV2,"BALL VALVE 2""",3,0.0,3,20,,,ENTREPOT
546,TUYAU3,TUYAU 3 PO STD NOIR A53B LONGUEUR 21 PIEDS,1,0.0,1,20,,,ENTREPOT
547,TUYAU4,TUYAU 4PO STD NOIR A53B ERW,0,0.0,0,20,,,ENTREPOT
548,TUYAU3/4,TUYAU 3/4 SCHEDULE 40 A53B UNI NOIR LONGUEUR 21 PIEDS,3,0.0,3,20,,,ENTREPOT
549,TUYAU1,TUYAU 1'' SCHEDULE 40 A53B BOUT UNI NOIR LONGUEUR 21 PIEDS,7,0.0,7,20,,,ENTREPOT
550,TPVC11/2,1 1/2 X20' PVC SCH80 TUY MXM GRIS XIRTEC,0,0.0,0,20,,,ENTREPOT
551,TUYAU11/2,"TUYAU 1 1/2 NOIR A53B CEDULE 40, LONGUEUR 21 PIEDS","693,040",0.0,"693,040",0,,,ENTREPOT
552,BARB2,BARB 2 PO,1,0.0,1,20,,,ENTREPOT
553,BAC,BAC DE RECUPERATION POUR RACK,630,0.0,630,0,,,ENTREPOT
554,DTB2X11/2,DOUBLE TAP BUSHING 2'' X 1 1/2,38,0.0,38,0,,FITTING,ENTREPOT
555,PIECERACK1,"PIECE RACK 1 , PLAQUE 1 3/8'' X 1 3/8''","3,240",0.0,"3,240",0,,,ENTREPOT
556,ROD3/8,"BARRE RONDE 3/8, X 20'",30,0.0,30,0,,,ENTREPOT
557,FA3/4X1/8,"FER ANGLE 3/4 X 3/4 X 1/8, X 20'",39,0.0,39,0,,,ENTREPOT
558,FA2X2X1/8,"FER ANGLE 2 X 2 X 1/8, X20'",0,0.0,0,20,,,ENTREPOT
559,FA2X2X1/4,"FER ANGLE 2 X 2 X 1/4, X 20'",25,0.0,25,0,,,ENTREPOT
560,FA1X1X1/8,"FER ANGLE 1 X 1 X 1/8, X20'",5,0.0,5,20,,,ENTREPOT
561,FA11/2X1/8,"FER ANGLE 1 1/2 X 1 1/2 X 1/8, X20'",826,0.0,826,0,,,ENTREPOT
562,FA11/2X1/4,"FER ANGLE 1 1/2 X 1 1/2 X 1/4, X20'",435,0.0,435,0,,,ENTREPOT
563,FB1/4X11/2,"FLAT BAR 1/4 X 1 1/2, X 20'",12,0.0,12,0,,,ENTREPOT
564,FB1/4X2,"FLAT BAR 1/4 X 2, X 20'",12,0.0,12,0,,,ENTREPOT
565,FB3/8X6,"FLAT BAR 3/8 X 6, X 20'",2,0.0,2,20,,,ENTREPOT
566,FB1/2X2,"FLAT BAR 1/2 X 2, X 20'",5,0.0,5,20,,,ENTREPOT
567,FB1/2X6,"FLAT BAR 1/2 X 6' , X 20'",3,0.0,3,20,,,ENTREPOT
568,PIECERACK4,"PIECE RACK 4, PLAQUE 2 1/2 '' X 2 1/2''","3,203",0.0,"3,203",0,,,ENTREPOT
569,ROD3/4,ROD 3/4 (BARRE RONDE) X 20',0,0.0,0,20,,,ENTREPOT
570,ROD1,ROD 1'' (BARRE RONDE) X 20',0,0.0,0,20,,,ENTREPOT
571,TR2X4X1/4,"TUBE RECT 2 X 4 X 1/4 , X20'",0,0.0,0,20,,,ENTREPOT
572,TR2X5X1/4,"TUBE RECT HSS 2 X 5 X 1/4'', 24'",2,0.0,2,20,,,ENTREPOT
573,TR3X4X1/4,"TUBE RECT 3 X 4 X 1/4 , X 20'",0,0.0,0,20,,,ENTREPOT
574,PIECERACK2,"PIECE RACK 2 , PIECE 2 3/8'' X 1 3/8''","2,112",0.0,"2,112",0,1056,,ENTREPOT
575,TR1,TUBE ROND 1'' (1 1/16EXT) X 1/8 (125) X24' (POUR PRD110),2,0.0,2,20,,,ENTREPOT
576,T2X4X1/4,"TUBE RECT 2 X 4 X 1/4 , X20'",0,0.0,0,20,,,ENTREPOT
577,T3X4X1/4,"TUBE RECT 3 X 4 X 1/4, 24'",0,0.0,0,20,,,ENTREPOT
578,FA3X1/2,"FER ANGLE 3 X 3 X 1/2, 20'",43,0.0,43,0,,,ENTREPOT
579,ROD1/4,BARRE RONDE 1/4'',10,0.0,10,0,,,ENTREPOT
580,DTB2X1,DOUBLE TAP BUSHING 2 X 1 X 1,68,0.0,68,0,,,ENTREPOT
581,LAMETOOL,LAME POUR TOOL (PQT 5),0,0.0,0,20,,,ENTREPOT
582,3685-A,HEAVY DUTY COMPTEUR MECANIQUE,0,0.0,0,20,,,HENRI
583,RACK150,RACK POUR RESERVOIR REC150,-3,0.0,-3,20,,,PR FINI
584,PRD110,DRAIN SUR ROULETTES PORTATIF 110 L,-191,0.0,-191,20,,,PRFINI
585,TKFD510,BASSIN POUR FILTRES D'HUILE USEE 510L,-136,0.0,-136,20,,,PRFINI
586,REC250-U-DW,UL/ULC RESERVOIR RECT VERTICAL DOUBLE PAROI 1130L,-106,0.0,-106,20,,,PRFINI
587,PRD140,DRAIN MOBILE POUR PUIT 48 GAL (140L),0,0.0,0,20,,,PRFINI
588,PRD120,DRAIN MOBILE POUR PUIT VOITURE 120L 25GAL,3,0.0,3,20,,,PRFINI
589,PRD30,DRAIN MOBILEPOUR PUIT HEXAGONALE 30GAL (140L),-41,0.0,-41,20,,,PRFINI
590,TKFD255,BASSIN POUR FILTRES D'HUILE USEE 255L,-28,0.0,-28,20,,,PRFINI
591,DWB002,ÉTABLI SUR ROULETTES POUR 2 BARILS,-52,0.0,-52,20,,,PRFINI
592,DWB003,ETABLIS SUR ROUES POUR3 BARILS,-67,0.0,-67,20,,,PRFINI
593,DWB004,ETABLIS SUR ROUES POUR 4 BARILS,-6,0.0,-6,20,,,PRFINI
594,RACK3,RACK POUR 3 BARILS 60 LITRES DEMONTABLE,"-1,185",0.0,"-1,185",20,,,PRFINI
595,CUBE375X3-RK,UL/ULC RESERVOIR CUBIQUE 3 PRODUITS 1690L AVEC RACK,-3,0.0,-3,20,,,PRFINI
596,CUBE250-RK,UL/ULC RESERVOIR CUBIQUE GRAVITE 1130L AVEC RACK,-1,0.0,-1,20,,,PRFINI
597,RACK125,RACK POUR REC125,-91,0.0,-91,20,,,PRFINI
598,RACK250,RACK POUR 2 X REC125,-195,0.0,-195,20,,,PRFINI
599,RACK375,RACK POUR 3 X REC125,-122,0.0,-122,20,,,PRFINI
600,OBDAPR,BAR D'HUILE,-548,0.0,-548,20,,,PRFINI
601,SUPPORT1,SUPPORT POUR BAR A L'HUILE SIMPLE,-58,0.0,-58,20,,,PRFINI
602,RACK30X30,RACK 30X30 (POUR REC600-U ET REC800-U),-179,0.0,-179,20,,,PRFINI
603,8078-D,MOULINET A HUILE 50' X 1/2 MID PRESSURE ALEMITE,1,0.0,1,20,,,SHIPPING
604,3644-C2,COMPTEUR ELECTRONIQUE PRE-REGLABLE,1,0.0,1,20,,,SHIPPING
605,BBF,BOUCHON REMPLISSAGE BARRURE FILETE 2 PO,431,1.0,431,0,,,SHIPPING
606,GAU72,"JAUGE A CORDE 48, 60, 72"" 1 1/2""NPT",78,0.0,78,0,,,SHIPPING
607,GAU32,"JAUGE 32"" GAUGE",98,0.0,98,0,,,SHIPPING
608,961011,COMPLETE IBC BRACKET (A-B-C-D),40,0.0,40,0,,,SHIPPING
609,GAU44,"JAUGE 44"" GAUGE",148,1.0,148,0,,,SHIPPING
610,FRL,FRL,8,0.0,8,20,,,SHIPPING
611,GAU36,"JAUGE 36"" GAUGE",7,0.0,7,20,,,SHIPPING
612,CV72,"COUPE VAPEUR EN ROULEAU 72"" X 250'",71,0.0,71,0,,,SHIPPING
613,MAMF3,"MAMELON 3"" FERME POUR VENT D'URGENCE UL",52,0.0,52,0,,,SHIPPING
614,COUDE2,"COUDE 2"" STD NOIR MALL IMP",0,0.0,0,20,,,SHIPPING
615,MAMF2,"MAMELON FERMÉ 2""",782,2.0,782,0,,,SHIPPING
616,MAMF11/2,"MAMELON FERMÉ 1""1/2 STD NOIR",70,0.0,70,0,,,SHIPPING
617,BOU1/2,"BOUCHON 1/2"" MALE CREUX NOIR",23,0.0,23,0,,,SHIPPING
618,EVENT2,BOUCHON D'EVENT 2'',432,1.0,432,0,,,SHIPPING
619,BOLT3/4,BOLT GR5 3/8-16 X 3/4,1,0.0,1,20,,,SHIPPING
620,WAS3/8,WASHERS 3/8,"15,228",0.0,"15,228",0,,,SHIPPING
621,BOLT1,BOLT GR5 3/8-16 X 1 PO,1,0.0,1,20,,,SHIPPING
622,PGRIS,PEINTURE GRIS BIEXO,2,0.0,2,20,,,SHIPPING
623,PNOIR,PEINTURE NOIR,"60,500",0.0,"60,500",0,,,SHIPPING
624,PBLAN,PEINTURE BLANC,"28,500",0.0,"28,500",0,,,SHIPPING
625,THIN,THINNER (GUN WASH),4,0.0,4,20,,,SHIPPING
626,PCANB,PEINTURE CANETTE BLANC,47,0.0,47,0,,,SHIPPING
627,PBLEUNH,PEINTURE BLEU NEW HOLLAND,5,0.0,5,20,,,SHIPPING
628,PBLEUA,PEINTURE BLEU RIVIERA (BLEU APRIL),9,0.0,9,20,,,SHIPPING
629,MT,MASKING TAPE,147,0.0,147,0,,,SHIPPING
630,PAP180,"PAPIER SABLE Q SILVER 6 PO,15 HOLE DISC (GRAIN 180)",5,0.0,5,20,,,SHIPPING
631,PAP120,"PAPIER SABLE Q SILVER 6 PO, 15 HOLE DISC (GRAIN 120)",1,0.0,1,20,,,SHIPPING
632,CAPLUGR4,BOUCHON ROUGE PLASTIQUE 4 PO,780,0.0,780,0,,,SHIPPING
633,CAPLUGR3,BOUCHON ROUGE PLASTIQUE 3 PO,"1,513",0.0,"1,513",0,,,SHIPPING
634,CAPLUGR2,BOUCHON ROUGE PLASTIQUE 2 PO,"7,150",0.0,"7,150",0,,,SHIPPING
635,CAPLUGR11/2,BOUCHON ROUGE PLASTIQUE 1 PO 1/2,"2,250",0.0,"2,250",0,,,SHIPPING
636,CAPLUGR3/4,BOUCHON ROUGE PLASTIQUE 3/4 PO,0,0.0,0,20,,,SHIPPING
637,WAS3/4,WASHER 3/4,110,0.0,110,0,,,SHIPPING
638,NUTS3/4,NUTS 3/4,11,0.0,11,0,,,SHIPPING
639,BOLT1/2,BOLT GR5 3/8-16 X 1/2,1,0.0,1,20,,,SHIPPING
640,BOLT1/4X1/2,BOLT GR5 1/4-20 X 1/2,1,0.0,1,20,,,SHIPPING
641,WAS1/4,WASHER 1/4,1,0.0,1,20,,,SHIPPING
642,TAPE,ROULETTE DE TAPE TRANPARENT 2'',240,0.0,240,0,,,SHIPPING
643,BOLT2,BOLT GR5 3/8-16 X 2 PO (POUR EVENT),3,0.0,3,20,,,SHIPPING
644,RCBAB,ROUE CACHE BARIL AVEC BARRURE,52,0.0,52,0,,,SHIPPING
645,RMGBJ,ROUE METAL GRISE POUR BOGEY JAUNE ET PRD140,-12,0.0,-12,20,,,SHIPPING
646,BOLT3/410X4,BOLT GR5 PLT 3/4-10 X 4,1,0.0,1,20,,,SHIPPING
647,BOLT1/420X2,BOLT GR5 1/4-20 X 2,"1,340",0.0,"1,340",0,,,SHIPPING
648,PCANN,PEINTURE CANNE NOIR,32,0.0,32,0,,,SHIPPING
649,PAP100,"PAPIER SABLE Q SILVER 6 PO, 15 HOLE DISC (GRAIN 100)",3,0.0,3,20,,,SHIPPING
650,DC-4,RESPIRATEUR DESSICANT,2,0.0,2,20,,,SHIPPING
651,BALLV1/2,BALL VALVE 1/2 PO,0,0.0,0,20,,,SHIPPING
652,COU1/2,COUDE 1/2 PO MALE-FEMELLE,1,0.0,1,20,,,SHIPPING
653,COTONF,COTON FROMAGE TACK CLOTH ROULEAU,2,0.0,2,20,,,SHIPPING
654,PAP400,PAPIER SABLE GRAIN 400,500,0.0,500,0,,,SHIPPING
655,TEFLON,TEFLON JAUNE,253,0.0,253,0,,,SHIPPING
656,PPAPR,PETIT ROUL PAPIER ROUGE CIRE 12'' X 240M,25,0.0,25,0,,,SHIPPING
657,PAB,POUDRE A BALAYER 300 LB,6,0.0,6,20,,,SHIPPING
658,STRAPM,COURROIE METALLIQUE 3/4 X 20,4,0.0,4,20,,,SHIPPING
659,CARTFH,CARTOUCHE FILTRE MASQUE (HYBRIDE) 3M (PQT 2),0,0.0,0,20,,,SHIPPING
660,UVEX02,PLASTIQUE DE REMPLACEMENT POUR MASQUE GRINDER UVEX S8500,11,0.0,11,0,,,SHIPPING
661,DWT46,DOWNTUBE 46'',7,0.0,7,20,,,SHIPPING
662,3M5P71,"FILTRE P95 5P71, 3M CONTRE LES PARTICULES 10/PQT",5,0.0,5,20,,,SHIPPING
663,LING3M,LINGETTE 3M POUR NETTOYER MASQUE 100/PQT,0,0.0,0,20,,,SHIPPING
664,1/2-13X21/2,BOLT 1/2-13 X 2 1/2 (POUR BOGUEY JAUNE),1,0.0,1,20,,,SHIPPING
665,GAUBK,BLACK KNIGHT GAUGE,42,0.0,42,0,,,SHIPPING
666,PAP80,QUICK CHANGE GR80 POUR SABLER (100/BTE),2,0.0,2,20,,,SHIPPING
667,DWT58,DOWNTUBE 58'',-113,0.0,-113,20,,,SHIPPING
668,DWT33,DOWNTUBE 33'',-3,0.0,-3,20,,,SHIPPING
669,DWT70,DOWNTUBE 70'',-13,0.0,-13,20,,,SHIPPING
670,256216,GRACO - POIGNEE ELECTRONIQUE PREREGLABLE AVEC EXTENSION RIGIDE,8,0.0,8,20,,,SHIPPING
671,25C904,"GRACO-VALVE,EM8,FLEX EXT,1/2'' NPT(REMPLACE 258693 1/8/18)",8,0.0,8,20,,,SHIPPING
672,HPM65D,"GRACO-REEL 50' SD POUR L'HUILE, BOYAU 1/2'' NPT, BOULE D'ARRET",6,0.0,6,20,,,SHIPPING
673,8103-4,"COMBO 1/4 NPT,FILTREUR,REGULATEUR ET LUBRIFICATEUR",12,0.0,12,0,,,SHIPPING
674,A72H44,BOYAUX CONNECTION AIR ET HUILE POUR RESERVOIR ET PACKAGE GRACO,28,0.0,28,0,,,SHIPPING
675,34046,LUBEQUIP-PICHET 5 LITRES,-28,0.0,-28,20,,,SHIPPING
676,24G576,PUMP LD 3:1 UNIVERSAL NPT,11,0.0,11,0,,,SHIPPING
677,250GVKIT-LD,DOWNTUBE 1'' SUR ADAPTEUR 2'',-27,0.0,-27,20,,,SHIPPING
678,A72H36,BOYAUX DE CONNECTIONS AIR ET HUILE POUR RESERVOIR,-28,0.0,-28,20,,,SHIPPING
679,9597,POMPE A LEVIER AVEC BEC DE DISTRIBUTION AJUSTABLE,11,0.0,11,0,,,SHIPPING
680,16F878,"TUBE PVC, UNIVERSAL LUBEQUIP",15,0.0,15,0,,,SHIPPING
681,24G588,POMPE 5:1 UNIVERSAL,4,0.0,4,20,,,SHIPPING
682,HSMC8B,GRACO- REEL 75' POUR L'HUILE A DOUBLE SUPPORT AVEC HOSE,-1,0.0,-1,20,,,SHIPPING
683,DWT25,"DOWNTUBE 25'' BISEAUTE ET FILLETE / PVC, 3/4'',",-269,0.0,-269,20,,,SHIPPING
684,PCANRB,PEINTURE CANNETTE ROUGE BIEXO,42,0.0,42,0,,,SHIPPING
685,PCANGB,PEINTURE CANNETTE GRIS BIEXO,14,0.0,14,0,,,SHIPPING
686,PAP80QS,"Q SILVER 6'' PAPIER SABLE 80 GRIT, 50/PKG","4,500",0.0,"4,500",0,,,SHIPPING
687,PCANRA,CANNETTE PEINTURE ROUGE APRIL,25,0.0,25,0,,,SHIPPING
688,RMGBJ-S,ROUE METAL GRISE 1/2 AVEC SLEEVE,-16,0.0,-16,20,,,SHIPPING
689,PCANBR,CANNETTE PEINTURE BLEU RIVIERA,6,0.0,6,20,,,SHIPPING
690,69542,LOC-LINE 3/4 ORANGE ROUND NOZZLE,269,0.0,269,0,,,SHIPPING
691,69545,LOC-LINE 3/4 NPT ORANGE CONNECTOR,269,0.0,269,0,,,SHIPPING
692,69540,LOC-LINE 3/4 BLUE SYSTEM HOSE,294,0.0,294,0,,,SHIPPING
693,PVERT,PEINTURE VERT JOHN DEERE (CASTROL),3,0.0,3,20,,,SHIPPING
694,PROUGEB,PEINTURE ROUGE BIEXO,31,0.0,31,0,,,SHIPPING
695,PROUGEA,PEINTURE ROUGE APRIL,28,0.0,28,0,,,SHIPPING
696,CATALYSER,DURCISSEUR POUR EPOXY (BLANC) (ACTIVATEUR),2,0.0,2,20,,,SHIPPING
697,MAM1/2,MAMELON CLOSE 1/2,-6,0.0,-6,20,,,SHIPPING
698,THINCLO,THINNER CLOVA,0,0.0,0,20,,,SHIPPING
699,COIN2,COIN 2'' PALLETTE 1080 MCX,2,0.0,2,20,,,SHIPPING
700,TUYAUPVC1,TUYAU PVC 1'' LONGUEUR DE 20 PIEDS,0,0.0,0,20,,,SHIPPING
701,TUYAUPVC3/4,TUYAU PVC 80 3/4'' LONGUEUR 20 PIEDS,7,0.0,7,20,,,SHIPPING
702,TUYAUPVC11/2,TUYAU PVC 1 1/2'' LONGUEUR DE 20 PIEDS,120,0.0,120,0,,,SHIPPING
703,PGRISWG,PEINTURE GRIS WESTERN GLOBAL,3,0.0,3,20,,,SHIPPING
704,EVULFF3,EMERGENCY VENT UL FILETE 3'' FEMELLE,63,0.0,63,0,,,SHIPPING
705,PNEE,PEINTURE NOIR EPOXY POUR EXTERIEUR,0,0.0,0,20,,,SHIPPING
706,BOLT11/4,"BOLT 3/8-16 X 1 1/4 GR5, ZINC","4,801",0.0,"4,801",0,,,SHIPPING
707,EVULFF4,EMERGENCY VENT UL FILETE 4'' FEMELLE,17,0.0,17,0,,,SHIPPING
708,MAMF4,MAMELON CLOSE 4'' (POUR VENT URGENCE UL),66,0.0,66,0,,,SHIPPING
709,BOUF11/2,BOUCHON 1 1/2 FEMELLE MALLEABLE NOIR,-8,0.0,-8,20,,,SHIPPING
710,33.1128,RACCORD HEX LAITON 1/4 MNPT X 1/2 MNPT,31,0.0,31,0,,,SHIPPING
711,WRAP8.4,"PELLICULE PALETTE (WRAP) 385MMX450M, 84MIC",31,0.0,31,0,,,SHIPPING
712,PRIMER,PRIMER PHENOLOC GRA GRIS 5 GALLON,0,0.0,0,20,,,SHIPPING
713,PBEE,PEINTURE BLANC EPOXY EXTERIEUR,5,0.0,5,20,,,SHIPPING
714,SAVON,"SAVON A MAIN ABRASIF ORANGEL, 4/BTE",2,0.0,2,20,,,SHIPPING
715,FLG2M,FLANGE 2 PO MINCE,827,4.0,827,0,"2""",MINCE,SOUDEUR
716,FLG1.5M,FLANGE 15PO MINCE,413,1.0,413,0,"15""",MINCE,SOUDEUR
717,BOUDW,BOUCHON CAOUTCHOUC POUR DW (COUDE),"1,215",0.0,"1,215",0,,,SOUDEUR
718,FLG2,FLANGE 2 PO BRIDE A SOUDER,252,1.0,252,0,,,SOUDEUR
719,FLG3,FLANGE 3 PO BRIDE A SOUDER,381,1.0,381,0,,,SOUDEUR
720,FLG4,FLANGE 4 PO BRIDE A SOUDER,211,0.0,211,0,,,SOUDEUR
721,MAM3/4,MAMELON CLOSE 3/4,"1,625",0.0,"1,625",0,,,SOUDEUR
722,REDUCT3/4,RÉDUCTION 2 À 3/4 MF HEX NOIR,569,0.0,569,0,,,SOUDEUR
723,BOU2,"BOUCHON 2"" MALE CREUX NOIR",994,1.0,994,0,,,SOUDEUR
724,BOU11/2,"BOUCHON 1""1/2 MALE CREUX NOIR",196,0.0,196,0,,,SOUDEUR
725,BOU3/4,"BOUCHON 3/4"" MALE CREUX NOIR",446,0.0,446,0,,,SOUDEUR
726,BOU3,"BOUCHON 3"" MALE CREUX NOIR",-8,0.0,-8,20,,,SOUDEUR
727,MAN3/4,"3/4 "" DEMI MANCHON HALF COUPLING NOIR STD",646,0.0,646,0,,,SOUDEUR
728,COUDE1,"COUDE 1"" SOCKET WELD POUR DW",-51,0.0,-51,20,,,SOUDEUR
729,CAPLUG4,BOUCHON CAOUTCHOUC 4 PO (POUR AMERICAINE),966,0.0,966,0,,,SOUDEUR
730,CAPLUG3,BOUCHON CAOUTCHOUC 3 PO (POUR AMERICAINE),11,0.0,11,0,,,SOUDEUR
731,FLG3/4,FLANGE 3/4 BRIDE A SOUDER,108,0.0,108,0,,,SOUDEUR
732,BR1140,BRACKET 1140,424,0.0,424,0,,,SOUDEUR
733,BRWG,BRACKET WESTERN GLOBAL (14 X 9 X 3),117,0.0,117,0,,,SOUDEUR
734,BR800,"BRACKET 800, 8 1/2 X 16562 PO",59,0.0,59,0,,,SOUDEUR
735,FLG1,FLANGE 1 PO BRIDE A SOUDER TANK,0,0.0,0,20,,,SOUDEUR
736,FLG1/2,FLANGE 1/2 PO,0,0.0,0,20,,,SOUDEUR
737,BOU1,BOUCHON MALE CREUX 1 PO,0,0.0,0,20,,,SOUDEUR
738,MAN1/2,MANCHON 1/2'' HALF-COUPLING,0,0.0,0,20,,,SOUDEUR
739,GAUA,INDICATEUR DE NIVEAU,88,0.0,88,0,,,SOUDEUR
740,BOU4,BOUCHON 4 PO MALE CREUX,0,0.0,0,20,,,SOUDEUR
741,LIFTINGLUG,LIFTING LUG POUR RÉSERVOIR,59,0.0,59,0,,,SOUDEUR
742,PATTE22,PATTE DE 22'',340,2.0,340,0,,,SOUDEUR
743,BRKTRECNEW,BRACKET REC UNIVERSELLE (NOUVEAU MODELE),151,1.0,151,0,,,SOUDEUR
744,MAMF1,MAMELON FERME 1'' X 1 1/2,133,0.0,133,0,,,SOUDEUR

RecetteDF:

,Codes interne,Nom des Composantes,Quantite requise
0,BOU2,"BOUCHON 2"" MALE CREUX NOIR",1.0
1,BBF,BOUCHON REMPLISSAGE BARRURE FILETE 2 PO,1.0
2,EVENT2,BOUCHON D'EVENT 2'',1.0
3,VENTCAP4,COUPOLE 4 PO VENT CAP,1.0
4,VUP3,PIECE POUR EVENT D'URGENCE 3'',1.0
5,GASKET 3.775,"GASKET 3.775"" VENT D'URGENCE",1.0
6,MAM3X6,MAMELON 3X6 STD ACIER NOIR S/CONT,0.5
7,FLG3,FLANGE 3 PO BRIDE A SOUDER,1.0
8,FLG1.5M,FLANGE 1.5PO MINCE,1.0
9,FLG2M,FLANGE 2 PO MINCE,4.0
10,FLG2,FLANGE 2 PO BRIDE A SOUDER,1.0
11,GAU44,"JAUGE 44"" GAUGE",1.0
12,MAMF2,"MAMELON FERMÉ 2""",2.0
13,BREC100/300,"BOUTS REC100 A REC 300 (HR, GA11, 48.188 X 24,000 )",2.0
14,PATTE22,PATTE DE 22'',2.0
15,4X8,"FEUILLE 11GA, 48 X 96",1.0
16,BRKTRECNEW,BRACKET REC UNIVERSELLE (NOUVEAU MODELE),1.0

所以现在我唯一的问题是找到一种更快的方法。

只要有匹配项,就可以使用pandas.mergeRecetteDF中提取Quantite requise。合并应该使用left来完成,这样即使没有匹配,我们也可以保留InventaireDF的行。以下是一些应该工作的代码:

# get values to increment from source DF
InventaireDF = pd.merge(InventaireDF, RecetteDF[['Codes interne', 'Quantite requise']], how='left', on='Codes interne')
# when source does not contain matching key, the increment value will be NaN; set it to zero instead
InventaireDF['Quantite requise'].fillna(0.0, inplace=True)
# convert relevant columns to dtype float
InventaireDF['Quantite requise'] = InventaireDF['Quantite requise'].astype(float)
InventaireDF['Quantite Reserver'] = InventaireDF['Quantite Reserver'].astype(float)
# perform the increment
InventaireDF['Quantite Reserver'] += InventaireDF['Quantite requise']
# drop the column with the increment because we don't need it anymore
InventaireDF.drop(columns=['Quantite requise'], inplace=True)

这应该比带有相等检查的for循环快得多。

merge步骤的说明

首先,只从RecetteDF中选择两个相关列:不需要其他列。将InventaireDF作为左侧数据帧(即merge的第一个参数),确保对键列执行left合并。

InventaireDF将具有与开头相同的行数,并且由于合并将具有一个额外列:Quantite requise。除非与RecetteDF匹配,否则此列将为NaN,在这种情况下,它将从中获取值。

剩下的步骤只是将NaNs替换为0s,将列类型转换为float,执行增量,然后从InventaireDF中删除多余的列。

请确保测试此代码是否有效并满足您的要求。

最新更新