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