Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 数据帧与元组索引的串联_Python_Python 2.7_Pandas_Dataframe - Fatal编程技术网

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