だいぶ前にpandasの話を書きましたが、
(下記、参照)
複数のデータ構成の場合にSQLのように結合できるかが気になり調べました。
結論から言うと、2つのデータ(csvファイルをDataFrameにしたもの)だと可能でいっきに3つ以上のデータ結合は無理でした。
では、どうやればいいかと言うと2つ結合を繰り返して1つにするという方法しかなさそうでした。
2つの結合方法はpd.merge()
関数を使用する。
記載方法
第一引数、第二引数は結合するDataFrame
第三引数は結合方(inner/left/right/outer)
- 内部結合(inner_join):
how='inner'
- 左結合(left_join):
how='left'
- 右結合(right_join):
how='right'
- 外部結合(outer_join):
how='outer'
第四引数は条件
pd.merge(df1, df2, how = 結合方法, on = ”結合キー”)
キー列でソートする場合は引数sort
をTrue
とする。
pd.merge(df1, df2, how = 結合方法, on = ”結合キー”,sort = True)
他にも、引数indicator
をTrue
とすると、元データの情報がどちらに含まれていか(both, left_only, right_only)列が追加される。
上記で結合を行い、集計などすれば大量データなどの解析が便利そう。
実際に実務運用したことないが、検討してみて解析などにお客様に提案してみようかと思っています。