我需要将多个DataFrame合并为一个。所有这些都有整数索引,我想在结果中保留。
示例:
df_1
a
0 1
1 3
5 10
7 2
df_2
b
2 4
4 11
7 3
9 4
结果:
a b
0 1 -
1 3 -
2 - 4
4 - 11
5 10 -
7 2 3
9 - 4
到目前为止,我一直在使用这种方法,我想知道是否有更清洁的解决方案:
dfs = [df_1, df_2, ...]
join_index = list()
for df in dfs:
join_index.extend(df.index.tolist())
join_index = sorted(list(set(join_index)))
然后在将DataFrames连接在一起时使用join_index。
答案 0 :(得分:1)
使用concat
,索引是DataFrame
中list
s的所有索引的并集,也是排序的:
dfs = [df_1, df_2]
df = pd.concat(dfs, axis=1)
print (df)
a b
0 1.0 NaN
1 3.0 NaN
2 NaN 4.0
4 NaN 11.0
5 10.0 NaN
7 2.0 3.0
9 NaN 4.0