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

回答編集履歴

2

追記

2019/07/15 06:48

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -1,3 +1,29 @@
1
1
  ループの中でadd_prefixメソッドを使うか文字列を結合するかして列名を予め意図するようなものに変えておき、二重forループを抜けた後に、pd.concatで結合するのが簡単に思えます。
2
2
 
3
- 列方向で結合する場合は、axis=1を指定してください。
3
+ 列方向で結合する場合は、axis=1を指定してください。
4
+
5
+ ##### 追記
6
+ こんな感じでしょうか。
7
+ ```python
8
+ import pandas as pd
9
+
10
+ dfs = [pd.DataFrame({"time":[1, 2], "count":[5, 10]}),
11
+ pd.DataFrame({"time":[1, 2], "count":[8, 3]}),
12
+ pd.DataFrame({"time":[1, 3], "count":[8, 5]})]
13
+ names = ["20190708", "20190710", "20190711"]
14
+
15
+ df_all = pd.DataFrame({"time":[]})
16
+ for df, name in zip(dfs, names):
17
+ df.rename(columns={"count":"count" + name}, inplace=True)
18
+ df_all = df_all.merge(df, how="outer")
19
+ df_all.set_index("time", inplace=True)
20
+ print(df_all)
21
+
22
+ """ =>
23
+ count20190708 count20190710 count20190711
24
+ time
25
+ 1 5.0 8.0 8.0
26
+ 2 10.0 3.0 NaN
27
+ 3 NaN NaN 5.0
28
+ """
29
+ ```

1

追記

2019/07/15 06:48

投稿

hayataka2049
hayataka2049

スコア30939

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