2017-09-22 11 views
0

私はこの問題を解決する必要があります。Python pandas、これらのプロパティを持つ2つのデータフレームからデータフレームを構築する

2つのデータフレームからデータフレーム全体を構築する必要がありますが、必要に応じて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

答えて

0

は、あなたが `マージ`をしてみてくださいでした

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

前にマージとコンカットメソッドを使用しましたが、これは基本的に私が求めていたものですが、 DF2が2つ以上の列を持っていて、特定の順序で列を追加する必要がある場合でした。 EX:DF2.columnsは(BGグループ、材料N°、ETA、ETD、TRANSIT TIME、FLAGS)であり、DF3.columns =(材料N°、説明、日付DUE、BG_GROUP、TRANSIT_TIME)を取得する必要があります – Javilg

+0

df2にdf1.merge(df2 [['BG GROUP'、 'MATERIAL N'、 'TRANSIT TIME']]、how = 'left)を使用してdf2の列を選択することができます。 – Vaishali

+0

ありがとうVaishali !!私はパンダがいつも動作していると思う、私はドキュメントと一緒に座る必要がある.... – Javilg

関連する問題