質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

981閲覧

順序が異なる2つのpandasを結合したい

J1N

総合スコア56

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/06/30 04:24

前提・実現したいこと

2つのpandasを結合する方法に関する質問です。
具体的には下に例のデータを入れさせていただきました。

例えば、気温、湿度、降水確率などを特徴量として、ある豚汁のお店の売上を予測したい時に、
売上のテーブルと天気のテーブルを結合したいです。

難しいと感じているところは2点あります。

  1. Keyとして2列を指定したい

ネットでmergeの使い方を調べてみましたが、ほとんどはKeyに1列をしていている事例でしたので、どのように2列をKeyに設定するかについて、疑問点を抱いています。

  1. 2つのテーブルの並び順が異なる

こちらも、ネットで見た事例はほとんどが2つのテーブルが同一の並び順でしたので、並び順が異なるテーブルでも、そのままMergeできるのか、疑問に思っています。

どなたか、教えていただけますと幸いです。

売上のテーブル

日付時刻売上
2018-01-0194000
2018-01-01103000
2018-01-01115000
2018-01-01122000
2018-01-0291000
2018-01-02107000
2018-01-02118000
2018-01-02123000
2018-01-03101000
2018-01-02159000

天気テーブル
|日付|時刻|降水確率|気温|湿度|
|:--|:--:|--:|
|2018-01-02|11|10|5|26|
|2018-01-02|12|20|6|26|
|2018-01-03|10|70|2|76|
|2018-01-01|9|30|6|56|
|2018-01-01|10|20|7|56|
|2018-01-01|11|50|7|56|
|2018-01-01|12|50|7|56|
|2018-01-02|9|10|3|26|
|2018-01-02|10|10|4|26|
|2018-01-03|15|90|6|86|

補足情報(FW/ツールのバージョンなど)

OSはMac、Jupyter notebook上で、Python3系でコーディングをしています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

売上のテーブルを df_profit, 天気のテーブルを df_weather としますと、

python

1pd.merge(df_profit, df_weather, how='inner', on=['日付', '時刻']

とすれば正常に動作すると思います。

2つの疑問点につきましては、

  1. Keyとして2列を指定したい: pd.mergeon にリストを指定することで、複数キーによる結合を行うことができます。
  2. 2つのテーブルの並び順が異なる: データフレームの結合に関しては並び順は関係ありませんので、単に pd.merge を実行すれば良いと思います。結合後のテーブルの並び順を変更したい場合は、別途データフレーム df に対して df.sort_values などを使っていただければ良いと思います。

投稿2019/06/30 04:37

r_takahama

総合スコア106

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

J1N

2019/06/30 05:05

ありがとうございます。 そのままでも作動するのですね。 元のデータでやってみたら、結合はうまくいくのですが、行数が0になってしまうので、mergeの使い方の問題かと思っていました。 そのままで作動するようでしたら、データの方の問題かもしれません。 大変助かりました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問