teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

表の修正

2022/07/07 05:53

投稿

kumer1
kumer1

スコア26

title CHANGED
File without changes
body CHANGED
@@ -1,70 +1,70 @@
1
- ### 前提・実現したいこと
2
- (本来ならSQLなのかも知れませんが、、)pythonでも2つ以上のファイルを読み込みリレーションを用いた集計で表示結果のように出力できないかと思い取り組みました。
3
- merge()を使って2つのファイルはうまく出来たのですが、結合するファイルが3つになったら出来なくなりました。
4
-
5
-
6
- name.csv
7
- |Id|Name|City_id|Job_id|
8
- |:--|:--:|--:|
9
- |1|Jun|1|1
10
- |2|Alex|1|4
11
- |3|Hiro|2|1
12
- |4|Takako|3|3|
13
- |5|Naoki|4|2|
14
-
15
- city.csv
16
- |City_id|City|
17
- |:--|:--:|
18
- |1|NYC|
19
- |2|Izu|
20
- |3|Tokyo|
21
- |4|SF|
22
-
23
- job.csv
24
- |Job_id|Job|
25
- |:--|:--:|
26
- |1|Neat|
27
- |2|Programmer|
28
- |3|Office Work|
29
- |4|Construction|
30
-
31
- 表示結果
32
- ||Id|Name|City|Job|
33
- |:--|:--:|--:|--:|
34
- 0|1|Jun|NYC|Neat
35
- 1|2|Alex|NYC|Construction
36
- 2|3|Hiro|Izu|Neat
37
- 3|4|Takako|Tokyo|Office Work
38
- 4|5|Naoki|SF|Programmer
39
-
40
- ### 発生している問題・エラーメッセージ
41
-
42
- ```
43
- Traceback (most recent call last):
44
- File "test.py", line 7, in <module>
45
- df4 = pd.merge(df1, df2, df3, how = 'inner', on = ['Job_id', 'City_id'])
46
- TypeError: merge() got multiple values for argument 'how'
47
- ```
48
-
49
- ### 該当のソースコード
50
-
51
- ```Python3
52
- import csv
53
- import pandas as pd
54
-
55
- df1 = pd.read_csv("name.csv")
56
- df2 = pd.read_csv("job.csv")
57
- df3 = pd.read_csv("city.csv")
58
- df4 = pd.merge(df1, df2, df3, how = 'inner', on = ['Job_id', 'City_id'])
59
- df4 = df4.loc[:, ['Id', 'Name', 'City', 'Job']]
60
- print(df4)
61
- ```
62
-
63
- ### 試したこと
64
- 色々と調べたのですが、もしかしてmerge()じゃ3つ以上のファイルを一気に処理、出来ない??
65
-
66
- ### 補足情報(FW/ツールのバージョンなど)
67
- MAC OS High Sierra
68
- ver.10.13.6
69
- Python 3.4.3
1
+ ### 前提・実現したいこと
2
+ (本来ならSQLなのかも知れませんが、、)pythonでも2つ以上のファイルを読み込みリレーションを用いた集計で表示結果のように出力できないかと思い取り組みました。
3
+ merge()を使って2つのファイルはうまく出来たのですが、結合するファイルが3つになったら出来なくなりました。
4
+
5
+
6
+ name.csv
7
+ |Id|Name|City_id|Job_id|
8
+ |:--|:--:|:--:|:--:|
9
+ |1|Jun|1|1
10
+ |2|Alex|1|4
11
+ |3|Hiro|2|1
12
+ |4|Takako|3|3|
13
+ |5|Naoki|4|2|
14
+
15
+ city.csv
16
+ |City_id|City|
17
+ |:--|:--:|
18
+ |1|NYC|
19
+ |2|Izu|
20
+ |3|Tokyo|
21
+ |4|SF|
22
+
23
+ job.csv
24
+ |Job_id|Job|
25
+ |:--|:--:|
26
+ |1|Neat|
27
+ |2|Programmer|
28
+ |3|Office Work|
29
+ |4|Construction|
30
+
31
+ 表示結果
32
+ ||Id|Name|City|Job|
33
+ |:--|:--:|:--:|:--:|:--:|
34
+ 0|1|Jun|NYC|Neat
35
+ 1|2|Alex|NYC|Construction
36
+ 2|3|Hiro|Izu|Neat
37
+ 3|4|Takako|Tokyo|Office Work
38
+ 4|5|Naoki|SF|Programmer
39
+
40
+ ### 発生している問題・エラーメッセージ
41
+
42
+ ```
43
+ Traceback (most recent call last):
44
+ File "test.py", line 7, in <module>
45
+ df4 = pd.merge(df1, df2, df3, how = 'inner', on = ['Job_id', 'City_id'])
46
+ TypeError: merge() got multiple values for argument 'how'
47
+ ```
48
+
49
+ ### 該当のソースコード
50
+
51
+ ```Python3
52
+ import csv
53
+ import pandas as pd
54
+
55
+ df1 = pd.read_csv("name.csv")
56
+ df2 = pd.read_csv("job.csv")
57
+ df3 = pd.read_csv("city.csv")
58
+ df4 = pd.merge(df1, df2, df3, how = 'inner', on = ['Job_id', 'City_id'])
59
+ df4 = df4.loc[:, ['Id', 'Name', 'City', 'Job']]
60
+ print(df4)
61
+ ```
62
+
63
+ ### 試したこと
64
+ 色々と調べたのですが、もしかしてmerge()じゃ3つ以上のファイルを一気に処理、出来ない??
65
+
66
+ ### 補足情報(FW/ツールのバージョンなど)
67
+ MAC OS High Sierra
68
+ ver.10.13.6
69
+ Python 3.4.3
70
70
  ここにより詳細な情報を記載してください。