パンダ左外側が複数の列の複数のデータフレームを結合します

user3311225:

DataFrameを使用するのが初めてで、一連のテーブルの複数の列で左外部結合に相当するSQLを実行する方法を知りたい

例:

df1: 
Year    Week    Colour    Val1 
2014       A       Red      50
2014       B       Red      60
2014       B     Black      70
2014       C       Red      10
2014       D     Green      20

df2:
Year    Week    Colour    Val2
2014       A     Black      30
2014       B     Black     100
2014       C     Green      50
2014       C       Red      20
2014       D       Red      40

df3:
Year    Week    Colour    Val3
2013       B       Red      60
2013       C     Black      80
2013       B     Black      10
2013       D     Green      20
2013       D       Red      50

本質的に私はこのSQLコードのようなことをしたいです(df3はYearに参加していないことに注意してください):

SELECT df1.*, df2.Val2, df3.Val3
FROM df1
  LEFT OUTER JOIN df2
    ON df1.Year = df2.Year
    AND df1.Week = df2.Week
    AND df1.Colour = df2.Colour
  LEFT OUTER JOIN df3
    ON df1.Week = df3.Week
    AND df1.Colour = df3.Colour

結果は次のようになります。

Year    Week    Colour    Val1    Val2    Val3
2014       A       Red      50    Null    Null
2014       B       Red      60    Null      60
2014       B     Black      70     100    Null
2014       C       Red      10      20    Null
2014       D     Green      20    Null    Null

私はマージと結合を使用しようとしましたが、複数のテーブルでどのようにそれを行うか、複数のジョイントが関係している場合はわかりません。誰かが私を助けてくれませんか?

ありがとう

TomAugspurger:

2つの段階でそれらをマージし、df1そしてdf2その後にその結果を最初の、そしてdf3

In [33]: s1 = pd.merge(df1, df2, how='left', on=['Year', 'Week', 'Colour'])

あなたは最後の参加のためにそれを必要としないので、私はdf3から1年を落としました。

In [39]: df = pd.merge(s1, df3[['Week', 'Colour', 'Val3']],
                       how='left', on=['Week', 'Colour'])

In [40]: df
Out[40]: 
   Year Week Colour  Val1  Val2 Val3
0  2014    A    Red    50   NaN  NaN
1  2014    B    Red    60   NaN   60
2  2014    B  Black    70   100   10
3  2014    C    Red    10    20  NaN
4  2014    D  Green    20   NaN   20

[5 rows x 6 columns]

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

パンダの特定の列を合計して、複数のデータフレームを結合します

分類Dev

パンダデータフレームの複数の列を1つの列に結合します

分類Dev

パンダのデータフレームは、複数の列を使用して結合します

分類Dev

複数の条件下で2つのパンダデータフレームを左結合する

分類Dev

パンダ:列の値が繰り返されている列で複数のデータフレームを結合またはマージします

分類Dev

列上の複数のデータフレームを結合するパンダ

分類Dev

パンダは複数のデータフレームを合計します

分類Dev

パンダは複数のキーでデータフレームを結合します

分類Dev

同じデータフレームパンダで複数の列を1つの列に結合する

分類Dev

組み合わせパンダは、単一のデータフレーム内の複数の列として結果を適用します

分類Dev

条件が真の場合、パンダはデータフレームを複数に分割します

分類Dev

複数の列を持つパンダでパンダのデータフレームを変換します

分類Dev

列が整列されていない場合の複数のパンダデータフレームの連結

分類Dev

列数が異なる2つのパンダデータフレームを結合します

分類Dev

パンダ:複数の列の2つのデータフレームをマージ(結合)

分類Dev

パンダ:複数の.csvファイルを連結し、同じ名前の列が集約されたデータフレームを返します

分類Dev

複数のパンダデータフレームを連結中にエラーが発生しました

分類Dev

キーが文字列/整数の場合、辞書内の複数のパンダデータフレームをマージします

分類Dev

パンダは複数の列のデータフレームに関数を適用します

分類Dev

パンダのデータフレーム:列ごとにグループ化し、この列の複製を複数の行にまたがらせます

分類Dev

複数のデータフレームをパンダで連結すると、null値が返されます

分類Dev

複数のパンダデータフレームのすべての列を、データと列名を使用して1つのデータフレームに結合します

分類Dev

複数の列の条件の場合、パンダデータフレームの新しい列が期待値ベースを取得できませんでした

分類Dev

複数の列のパンダデータフレームの形状を変更します

分類Dev

パンダデータフレームの複数の列の表面加重平均を取得します

分類Dev

複数のパンダデータフレームの合計を効果的な方法で比較します

分類Dev

rの複数のデータフレームを結合します

分類Dev

パンダ-複数のテキストファイルからの情報を単一のデータフレームに結合します

分類Dev

複数の列を持つパンダデータフレームの形状を変更します

Related 関連記事

  1. 1

    パンダの特定の列を合計して、複数のデータフレームを結合します

  2. 2

    パンダデータフレームの複数の列を1つの列に結合します

  3. 3

    パンダのデータフレームは、複数の列を使用して結合します

  4. 4

    複数の条件下で2つのパンダデータフレームを左結合する

  5. 5

    パンダ:列の値が繰り返されている列で複数のデータフレームを結合またはマージします

  6. 6

    列上の複数のデータフレームを結合するパンダ

  7. 7

    パンダは複数のデータフレームを合計します

  8. 8

    パンダは複数のキーでデータフレームを結合します

  9. 9

    同じデータフレームパンダで複数の列を1つの列に結合する

  10. 10

    組み合わせパンダは、単一のデータフレーム内の複数の列として結果を適用します

  11. 11

    条件が真の場合、パンダはデータフレームを複数に分割します

  12. 12

    複数の列を持つパンダでパンダのデータフレームを変換します

  13. 13

    列が整列されていない場合の複数のパンダデータフレームの連結

  14. 14

    列数が異なる2つのパンダデータフレームを結合します

  15. 15

    パンダ:複数の列の2つのデータフレームをマージ(結合)

  16. 16

    パンダ:複数の.csvファイルを連結し、同じ名前の列が集約されたデータフレームを返します

  17. 17

    複数のパンダデータフレームを連結中にエラーが発生しました

  18. 18

    キーが文字列/整数の場合、辞書内の複数のパンダデータフレームをマージします

  19. 19

    パンダは複数の列のデータフレームに関数を適用します

  20. 20

    パンダのデータフレーム:列ごとにグループ化し、この列の複製を複数の行にまたがらせます

  21. 21

    複数のデータフレームをパンダで連結すると、null値が返されます

  22. 22

    複数のパンダデータフレームのすべての列を、データと列名を使用して1つのデータフレームに結合します

  23. 23

    複数の列の条件の場合、パンダデータフレームの新しい列が期待値ベースを取得できませんでした

  24. 24

    複数の列のパンダデータフレームの形状を変更します

  25. 25

    パンダデータフレームの複数の列の表面加重平均を取得します

  26. 26

    複数のパンダデータフレームの合計を効果的な方法で比較します

  27. 27

    rの複数のデータフレームを結合します

  28. 28

    パンダ-複数のテキストファイルからの情報を単一のデータフレームに結合します

  29. 29

    複数の列を持つパンダデータフレームの形状を変更します

ホットタグ

アーカイブ