Python熊猫,使用这些属性从2个数据框构建数据框

问题描述:

我需要解决此问题。Python熊猫,使用这些属性从2个数据框构建数据框

我需要从两个数据框构建一个完整的数据框,但如果需要,只包含来自第二个数据框的某些信息。

例:

DF1:

MATERIAL_N° Description DATE DUE 
0 123123300 Lightbulb X 01/05/2018 
1 220466  Lightbulb Y 04/04/2018 
2 220000  Lightbulb Z 07/07/2018 
3 1241241  Lightbulb A 02/01/2019 
4 7775447  Lightbulb B 02/01/2019 

DF2:

BG GROUP MATERIAL N° TRANSIT TIME 
0 9001  123123300 45D 
1 9002  220466  30D 
2 9004  220000  30D 
3 9003  44124  20D 
4 9000  2512222  15D 
5 9002  1241241  40D 

预期的结果DF3:

MATERIAL N° Description  DATE DUE BG GROUP TRANSIT TIME 
0 123123300 Lightbulb X  01/05/2018 9001.0 45D 
1 220466  Lightbulb Y  04/04/2018 9002.0 30D 
2 220000  Lightbulb Z  07/07/2018 9004.0 30D 
3 1241241  Lightbulb A  02/01/2019 9002.0 40D 
4 7775447  Lightbulb B  02/01/2019 NaN  NaN 

我希望这个例子是非常明显的,我需要制作大型数据框(DF3)广告只有在DF2有信息可用的情况下,否则请留空该位置。

谢谢! JL

+0

你尝试''合并? https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.merge.html – Wen

您需要的参数合并左

df1.merge(df2, how = 'left') 

    MATERIAL N° Description DATE DUE BG GROUP TRANSIT TIME 
0 123123300 Lightbulb X 01/05/2018 9001.0  45D 
1 220466  Lightbulb Y 04/04/2018 9002.0  30D 
2 220000  Lightbulb Z 07/07/2018 9004.0  30D 
3 1241241  Lightbulb A 02/01/2019 9002.0  40D 
4 7775447  Lightbulb B 02/01/2019 NaN   NaN 
+0

我之前使用过merge和concat方法,这基本上是我要求的,但我错过了要求一点如果DF2的数量多于2列,我需要按照特定的顺序添加列。 EX:DF2.columns是(BG GROUP,MATERIAL N°,ETA,ETD,TRANSIT TIME,FLAGS),我需要获得DF3.columns =(MATERIAL N°,DESCRIPTION,DATE DUE,BG_GROUP,TRANSIT_TIME) – Javilg

+0

如果df2有在最终数据框中不需要更多的列,可以使用df1.merge(df2 [['BG GROUP','MATERIAL N','TRANSIT TIME']],how ='left)选择df2的列。 – Vaishali

+0

感谢Vaishali !!我想大熊猫总能工作,我需要坐下来与文件.... – Javilg