熊猫与不同指数相结合

Ham*_*ait 4 python concat dataframe pandas

我有三个要连接的数据框,但是它们都有不同的索引。所有三个索引具有相同的长度。我的第一个df如下所示:

Index    Time_start    Time_end    duration    value
0        5             10          5           1.0
1        10            16          6           NaN
...
39       50            53          3           NaN
Run Code Online (Sandbox Code Playgroud)

第二个df如下所示:

Index    Time_start    Time_end    duration    value
40        5             10         5           2.0
42        10            16         6           NaN
...
79        50            53         3           NaN
Run Code Online (Sandbox Code Playgroud)

第三个看起来完全相同,但是Index = [80..119],但是time_start,Time_end和duration完全相同。价值各不相同。

我想连接值列,使它看起来像这样

Index    Time_start    Time_end    duration    value1    value2 value3
1        5             10          5           1.0       2      3
2        10            16          6           NaN       NaN    NaN
...
39       50            53          3           NaN       NaN    NaN
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经尝试过

pd.concat([df1, df2.value, ms3.value], axis=1, join_axes = [df1.index])
Run Code Online (Sandbox Code Playgroud)

但是索引不一样,因此无法正常工作。我知道我可以先尝试

df2.reset_index(drop=True)
Run Code Online (Sandbox Code Playgroud)

然后执行concat,该方法有效,但是我敢肯定有更好的方法。

piR*_*red 5

dfs = [df1, df2]
cols = ['Time_start', 'Time_end', 'duration']
keys = ['value1', 'value2']
pd.concat(
    [df.set_index(cols).value for df in dfs],
    axis=1, keys=keys)

                              value1  value2
Time_start Time_end duration                
5          10       5            1.0     2.0
10         16       6            NaN     NaN
50         53       3            NaN     NaN
Run Code Online (Sandbox Code Playgroud)