回答編集履歴

2

追記

2019/07/15 06:48

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -3,3 +3,55 @@
3
3
 
4
4
 
5
5
  列方向で結合する場合は、axis=1を指定してください。
6
+
7
+
8
+
9
+ ##### 追記
10
+
11
+ こんな感じでしょうか。
12
+
13
+ ```python
14
+
15
+ import pandas as pd
16
+
17
+
18
+
19
+ dfs = [pd.DataFrame({"time":[1, 2], "count":[5, 10]}),
20
+
21
+ pd.DataFrame({"time":[1, 2], "count":[8, 3]}),
22
+
23
+ pd.DataFrame({"time":[1, 3], "count":[8, 5]})]
24
+
25
+ names = ["20190708", "20190710", "20190711"]
26
+
27
+
28
+
29
+ df_all = pd.DataFrame({"time":[]})
30
+
31
+ for df, name in zip(dfs, names):
32
+
33
+ df.rename(columns={"count":"count" + name}, inplace=True)
34
+
35
+ df_all = df_all.merge(df, how="outer")
36
+
37
+ df_all.set_index("time", inplace=True)
38
+
39
+ print(df_all)
40
+
41
+
42
+
43
+ """ =>
44
+
45
+ count20190708 count20190710 count20190711
46
+
47
+ time
48
+
49
+ 1 5.0 8.0 8.0
50
+
51
+ 2 10.0 3.0 NaN
52
+
53
+ 3 NaN NaN 5.0
54
+
55
+ """
56
+
57
+ ```

1

追記

2019/07/15 06:48

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -1,4 +1,4 @@
1
- 二重forループを抜けた後に、pd.concatで結合するのが簡単に思えます。
1
+ ループの中でadd_prefixメソッドを使うか文字列を結合するかして列名を予め意図するようなものに変えておき、二重forループを抜けた後に、pd.concatで結合するのが簡単に思えます。
2
2
 
3
3
 
4
4