【发布时间】:2018-03-12 22:10:35
【问题描述】:
我有多个数据框。每个数据帧都有时间索引,它们都是相同的格式(日期时间)。问题是一些数据帧从 2000 年到 2004 年,而其他数据帧从 2001 年到 2004 年等等。我不知道哪个数据帧的时间最长。例如,
df1
companyA
2000-01-01 10
2000-02-01 13
2000-03-01 21
2000-04-01 11
2000-05-01 9
2000-06-01 18
.
.
.
2017-09-01 3
2017-10-01 14
2017-11-01 20
2017-12-01 5
df2
companyB
2004-01-01 19
2004-02-01 32
2004-03-01 17
2004-04-01 42
2004-05-01 29
2004-06-01 31
.
.
.
2017-09-01 43
2017-10-01 54
2017-11-01 30
2017-12-01 45
我想把它做成
df1
companyA companyB companyC...
2000-01-01 10 0 0
2000-02-01 13 0 0
2000-03-01 21 0 0
2000-04-01 11 0 0
2000-05-01 9 0 0
2000-06-01 18 0 0
.
.
.
2004-01-01 19 19 0
2004-02-01 12 32 0
2004-03-01 17 17 0
2004-04-01 12 42 0
2004-05-01 19 29 0
2004-06-01 11 31 0
.
.
.
2017-09-01 3 43 15
2017-10-01 14 34 24
2017-11-01 20 50 14
2017-12-01 5 45 21
我试过了
df = pd.concat([df1, df2, df3, .....], axis = 1)
但它只是堆叠并忽略了索引。 我也尝试过合并,但也没有用。
编辑:
pd.merge(df1,df2,left_index=True,right_index=True,how='outer').fillna(0)
这正是我想做的,但是,有没有办法合并两个以上的数据框?如果我有 100 家公司,我不想重复 100 次。
【问题讨论】:
-
请发布不想要的结果。我看不到它如何与
axis=1叠加,水平合并并忽略索引。
标签: python python-2.7 pandas dataframe