Python 数据帧与元组索引的串联
我有一组数据帧,我想将它们连接起来:Python 数据帧与元组索引的串联,python,python-2.7,pandas,dataframe,Python,Python 2.7,Pandas,Dataframe,我有一组数据帧,我想将它们连接起来: 1 1,1 (0, 0) 111 (0, 1) 256 (1, 0) 252 (1, 1) 381 2 1,3 (0, 0) 50 (0, 1) 85 (0, 2) 119 (0, 3) 191 (1, 0) 88 (1, 1) 111 (1, 2) 157 (1, 3) 199 3
1 1,1
(0, 0) 111
(0, 1) 256
(1, 0) 252
(1, 1) 381
2 1,3
(0, 0) 50
(0, 1) 85
(0, 2) 119
(0, 3) 191
(1, 0) 88
(1, 1) 111
(1, 2) 157
(1, 3) 199
3 1,4
(0, 0) 21
(0, 1) 56
(0, 2) 88
(0, 3) 130
(0, 4) 136
(1, 0) 67
(1, 1) 81
(1, 2) 121
(1, 3) 138
(1, 4) 162
结果应该是这样的:
1,1 1,4 1.3
(0, 0) 111 21 50
(0, 1) 256 56 85
(0, 2) NaN 88 119
(0, 3) NaN 130 191
(0, 4) NaN 136 NaN
(1, 0) 252 67 88
(1, 1) 381 81 111
(1, 2) NaN 121 157
(1, 3) NaN 138 199
(1, 4) NaN 162 NaN
我用它来连接集合:
df = pd.concat(s_ds)
当axis=1时,我得到一个结果,每个元素用键分隔。可以帮助我找到一种方法来合并存储在s_ds中的数据帧集合而不使用密钥吗 您可以使用带有
df.join
的外部联接(如果您有2-3个数据帧,仍然可以):
这里,df
、df2
和df3
是您的三个数据帧
另一种选择是使用
pd.concat
(更好地用于多个数据帧,如您的案例):
你试过使用df.join进行外部连接吗?我只是试过df=pd.concat(s_ds,join='outer'),但对于范围(2,len(s_ds))内的i来说,df=s_ds[0]不起作用:df=df.join(s_ds[i],how='outer')`我使用这个版本是因为我有10个以上的集合dataframe@RababAlkhalifa使用
pd.concat
检查我的第二个解决方案。这可能也有帮助。如果愿意,您可以标记为已接受:)
In [262]: df.join(df2, how='outer').join(df3, how='outer')
Out[262]:
1,1 1,3 1,4
(0, 0) 111.0 50.0 21
(0, 1) 256.0 85.0 56
(0, 2) NaN 119.0 88
(0, 3) NaN 191.0 130
(0, 4) NaN NaN 136
(1, 0) 252.0 88.0 67
(1, 1) 381.0 111.0 81
(1, 2) NaN 157.0 121
(1, 3) NaN 199.0 138
(1, 4) NaN NaN 162
In [278]: df = pd.concat([df, df2, df3], axis=1)
In [279]: df.index = df.index.to_series()
In [280]: df
Out[280]:
1,1 1,3 1,4
(0, 0) 111.0 50.0 21
(0, 1) 256.0 85.0 56
(0, 2) NaN 119.0 88
(0, 3) NaN 191.0 130
(0, 4) NaN NaN 136
(1, 0) 252.0 88.0 67
(1, 1) 381.0 111.0 81
(1, 2) NaN 157.0 121
(1, 3) NaN 199.0 138
(1, 4) NaN NaN 162