質問編集履歴

1

表の修正

2022/07/07 05:53

投稿

kumer1
kumer1

スコア26

test CHANGED
File without changes
test CHANGED
@@ -1,139 +1,70 @@
1
1
  ### 前提・実現したいこと
2
-
3
2
  (本来ならSQLなのかも知れませんが、、)pythonでも2つ以上のファイルを読み込みリレーションを用いた集計で表示結果のように出力できないかと思い取り組みました。
4
-
5
3
  merge()を使って2つのファイルはうまく出来たのですが、結合するファイルが3つになったら出来なくなりました。
6
4
 
7
5
 
8
-
9
-
10
-
11
6
  name.csv
12
-
13
7
  |Id|Name|City_id|Job_id|
14
-
15
- |:--|:--:|--:|
8
+ |:--|:--:|:--:|:--:|
16
-
17
9
  |1|Jun|1|1
18
-
19
10
  |2|Alex|1|4
20
-
21
11
  |3|Hiro|2|1
22
-
23
12
  |4|Takako|3|3|
24
-
25
13
  |5|Naoki|4|2|
26
14
 
27
-
28
-
29
15
  city.csv
30
-
31
16
  |City_id|City|
32
-
33
17
  |:--|:--:|
34
-
35
18
  |1|NYC|
36
-
37
19
  |2|Izu|
38
-
39
20
  |3|Tokyo|
40
-
41
21
  |4|SF|
42
22
 
43
-
44
-
45
23
  job.csv
46
-
47
24
  |Job_id|Job|
48
-
49
25
  |:--|:--:|
50
-
51
26
  |1|Neat|
52
-
53
27
  |2|Programmer|
54
-
55
28
  |3|Office Work|
56
-
57
29
  |4|Construction|
58
30
 
59
-
60
-
61
31
  表示結果
62
-
63
32
  ||Id|Name|City|Job|
64
-
65
- |:--|:--:|--:|--:|
33
+ |:--|:--:|:--:|:--:|:--:|
66
-
67
34
  0|1|Jun|NYC|Neat
68
-
69
35
  1|2|Alex|NYC|Construction
70
-
71
36
  2|3|Hiro|Izu|Neat
72
-
73
37
  3|4|Takako|Tokyo|Office Work
74
-
75
38
  4|5|Naoki|SF|Programmer
76
-
77
-
78
39
 
79
40
  ### 発生している問題・エラーメッセージ
80
41
 
81
-
82
-
83
42
  ```
84
-
85
43
  Traceback (most recent call last):
86
-
87
44
  File "test.py", line 7, in <module>
88
-
89
45
  df4 = pd.merge(df1, df2, df3, how = 'inner', on = ['Job_id', 'City_id'])
90
-
91
46
  TypeError: merge() got multiple values for argument 'how'
92
-
93
47
  ```
94
-
95
-
96
48
 
97
49
  ### 該当のソースコード
98
50
 
99
-
100
-
101
51
  ```Python3
102
-
103
52
  import csv
104
-
105
53
  import pandas as pd
106
54
 
107
-
108
-
109
55
  df1 = pd.read_csv("name.csv")
110
-
111
56
  df2 = pd.read_csv("job.csv")
112
-
113
57
  df3 = pd.read_csv("city.csv")
114
-
115
58
  df4 = pd.merge(df1, df2, df3, how = 'inner', on = ['Job_id', 'City_id'])
116
-
117
59
  df4 = df4.loc[:, ['Id', 'Name', 'City', 'Job']]
118
-
119
60
  print(df4)
120
-
121
61
  ```
122
62
 
123
-
124
-
125
63
  ### 試したこと
126
-
127
64
  色々と調べたのですが、もしかしてmerge()じゃ3つ以上のファイルを一気に処理、出来ない??
128
65
 
129
-
130
-
131
66
  ### 補足情報(FW/ツールのバージョンなど)
132
-
133
67
  MAC OS High Sierra
134
-
135
68
  ver.10.13.6
136
-
137
69
  Python 3.4.3
138
-
139
70
  ここにより詳細な情報を記載してください。