回答編集履歴

3

コード修正

2020/09/16 02:20

投稿

jeanbiego
jeanbiego

スコア3966

test CHANGED
@@ -1,6 +1,4 @@
1
- こういう格好ですか? かなり泥臭く書きましたが。4つより沢山あるなら違う書き方がいいですね。
1
+ こういう格好ですか? 
2
-
3
- 最初のデータがdf1,2,3,4...と与えられるのでなく辞書とかリスト型ならもう少しスマートにかけそうな気もします。
4
2
 
5
3
 
6
4
 
@@ -18,19 +16,21 @@
18
16
 
19
17
  df4 = pd.DataFrame({"A":[1111,2222,3333,4444],"B":["あ","い","う","え"]})
20
18
 
21
- df1 = df1.set_index("B", drop=False)
22
19
 
23
- df2 = df2.set_index("B", drop=False)
24
20
 
25
- df3 = df3.set_index("B", drop=False)
21
+ dfs = [df1,df2,df3,df4]
26
22
 
27
- df4 = df4.set_index("B", drop=False)
23
+ for i, d in enumerate(dfs,1):
28
24
 
29
- df5 = pd.concat([df1,df2,df3,df4],axis=1)
25
+ d = d.set_index("B", drop=False)
30
26
 
31
- df5.columns=["A1","B1","A2","B2","A3","B3","A4","B4"]
27
+ d.columns = ["A"+str(i),"B"+str(i)]
32
28
 
29
+ df = pd.concat(dfs,axis=1)
30
+
33
- print(df5)
31
+ print(df)
32
+
33
+
34
34
 
35
35
  #A1 B1 A2 B2 A3 B3 A4 B4
36
36
 

2

修正

2020/09/16 02:20

投稿

jeanbiego
jeanbiego

スコア3966

test CHANGED
@@ -1,6 +1,6 @@
1
- こういう格好ですか? かなり泥臭く書きましたが。
1
+ こういう格好ですか? かなり泥臭く書きましたが。4つより沢山あるなら違う書き方がいいですね。
2
2
 
3
- 最初のデータがdf1,2,3,4...と与えられるのでなく辞書とかリスト型ならもう少しスマートにかけそうな気もします
3
+ 最初のデータがdf1,2,3,4...と与えられるのでなく辞書とかリスト型ならもう少しスマートにかけそうな気もします。
4
4
 
5
5
 
6
6
 
@@ -32,24 +32,6 @@
32
32
 
33
33
  print(df5)
34
34
 
35
- #]
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
- df3 = df3.set_index("B", drop=False)
44
-
45
- df4 = df4.set_index("B", drop=False)
46
-
47
- df5 = pd.concat([df1,df2,df3,df4],axis=1)
48
-
49
- df5.columns=["A1","B1","A2","B2","A3","B3","A4","B4"]
50
-
51
- print(df5)
52
-
53
35
  #A1 B1 A2 B2 A3 B3 A4 B4
54
36
 
55
37
  #あ 1.0 あ 11.0 あ 111.0 あ 1111 あ

1

追記

2020/09/16 02:14

投稿

jeanbiego
jeanbiego

スコア3966

test CHANGED
@@ -1,4 +1,6 @@
1
- こういう格好ですか? 少し質問欄と形が異ってしいましたが。
1
+ こういう格好ですか? り泥臭く書きましたが。
2
+
3
+ 最初のデータがdf1,2,3,4...と与えられるのでなく辞書とかリスト型ならもう少しスマートにかけそうな気もしますが。
2
4
 
3
5
 
4
6
 
@@ -16,28 +18,46 @@
16
18
 
17
19
  df4 = pd.DataFrame({"A":[1111,2222,3333,4444],"B":["あ","い","う","え"]})
18
20
 
19
- df1 = df1.set_index("B")
21
+ df1 = df1.set_index("B", drop=False)
20
22
 
21
- df2 = df2.set_index("B")
23
+ df2 = df2.set_index("B", drop=False)
22
24
 
23
- df3 = df3.set_index("B")
25
+ df3 = df3.set_index("B", drop=False)
24
26
 
25
- df4 = df4.set_index("B")
27
+ df4 = df4.set_index("B", drop=False)
26
28
 
27
29
  df5 = pd.concat([df1,df2,df3,df4],axis=1)
28
30
 
29
- df5.columns=["A1","A2","A3","A4"]
31
+ df5.columns=["A1","B1","A2","B2","A3","B3","A4","B4"]
30
32
 
31
33
  print(df5)
32
34
 
33
- #  A1 A2 A3 A4
35
+ #]
34
36
 
35
- #あ 1.0 11.0 111.0 1111
36
37
 
37
- #い 2.0 NaN 333.0 2222
38
38
 
39
- #う 3.0 33.0 NaN 333
40
39
 
40
+
41
+
42
+
43
+ df3 = df3.set_index("B", drop=False)
44
+
45
+ df4 = df4.set_index("B", drop=False)
46
+
47
+ df5 = pd.concat([df1,df2,df3,df4],axis=1)
48
+
49
+ df5.columns=["A1","B1","A2","B2","A3","B3","A4","B4"]
50
+
51
+ print(df5)
52
+
53
+ #A1 B1 A2 B2 A3 B3 A4 B4
54
+
55
+ #あ 1.0 あ 11.0 あ 111.0 あ 1111 あ
56
+
57
+ #い 2.0 い NaN NaN 333.0 い 2222 い
58
+
59
+ #う 3.0 う 33.0 う NaN NaN 3333 う
60
+
41
- #え NaN 44.0 444.0 4444
61
+ #え NaN NaN 44.0444.04444
42
62
 
43
63
  ```