前提・実現したいこと
(本来ならSQLなのかも知れませんが、、)pythonでも2つ以上のファイルを読み込みリレーションを用いた集計で表示結果のように出力できないかと思い取り組みました。
merge()を使って2つのファイルはうまく出来たのですが、結合するファイルが3つになったら出来なくなりました。
name.csv
Id | Name | City_id | Job_id |
---|---|---|---|
1 | Jun | 1 | 1 |
2 | Alex | 1 | 4 |
3 | Hiro | 2 | 1 |
4 | Takako | 3 | 3 |
5 | Naoki | 4 | 2 |
city.csv
City_id | City |
---|---|
1 | NYC |
2 | Izu |
3 | Tokyo |
4 | SF |
job.csv
Job_id | Job |
---|---|
1 | Neat |
2 | Programmer |
3 | Office Work |
4 | Construction |
表示結果
Id | Name | City | Job | |
---|---|---|---|---|
0 | 1 | Jun | NYC | Neat |
1 | 2 | Alex | NYC | Construction |
2 | 3 | Hiro | Izu | Neat |
3 | 4 | Takako | Tokyo | Office Work |
4 | 5 | Naoki | SF | Programmer |
発生している問題・エラーメッセージ
Traceback (most recent call last): File "test.py", line 7, in <module> df4 = pd.merge(df1, df2, df3, how = 'inner', on = ['Job_id', 'City_id']) TypeError: merge() got multiple values for argument 'how'
該当のソースコード
Python3
1import csv 2import pandas as pd 3 4df1 = pd.read_csv("name.csv") 5df2 = pd.read_csv("job.csv") 6df3 = pd.read_csv("city.csv") 7df4 = pd.merge(df1, df2, df3, how = 'inner', on = ['Job_id', 'City_id']) 8df4 = df4.loc[:, ['Id', 'Name', 'City', 'Job']] 9print(df4)
試したこと
色々と調べたのですが、もしかしてmerge()じゃ3つ以上のファイルを一気に処理、出来ない??
補足情報(FW/ツールのバージョンなど)
MAC OS High Sierra
ver.10.13.6
Python 3.4.3
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。