【发布时间】:2021-07-02 00:57:48
【问题描述】:
我有三个 pandas 数据框:df1、df2、df3,如下所示:
df1=
| X | Y | M1_x | M2_x | M3_x |
|---|---|---|---|---|
| 12 | 33 | 3 | 4 | 2 |
| 12 | 54 | 0 | 3 | 4 |
| 23 | 12 | 0 | 8 | 3 |
df2=
| X | Y | M1_y | M2_y | M3_y |
|---|---|---|---|---|
| 12 | 33 | 9 | 4 | 1 |
| 12 | 54 | 0 | 3 | 5 |
| 12 | 11 | 0 | 2 | 1 |
df3=
| X | Y | M1_z | M2_z | M3_z |
|---|---|---|---|---|
| 12 | 33 | 1 | 40 | 10 |
| 11 | 10 | 10 | 30 | 0 |
| 12 | 11 | 0 | 40 | 5 |
我喜欢连接两个 df 并得到合并的数据框,如下所示:
结果 =
| X | Y | M1_x | M2_x | M3_x | M1_y | M2_y | M3_y | M1_z | M2_z | M3_z |
|---|---|---|---|---|---|---|---|---|---|---|
| 12 | 33 | 3 | 4 | 2 | 9 | 4 | 1 | 1 | 40 | 10 |
| 12 | 54 | 0 | 3 | 4 | 0 | 3 | 5 | nan | nan | nan |
| 23 | 12 | 0 | 8 | 3 | nan | nan | nan | nan | nan | nan |
| 12 | 11 | nan | nan | nan | 0 | 2 | 1 | 0 | 40 | 5 |
| 11 | 10 | nan | nan | nan | nan | nan | nan | 10 | 30 | 0 |
我已经尝试过 p.cocatenate 函数,问题是选择axis = 1,不合并[X,Y]列,然后我在结果文件中有双[X,Y]列,选择axis = 0 , 不合并行,我得到行的联合,而不是合并共同的 [X,Y] 彼此。 我怎样才能做到这一点?
编辑: 我知道合并两个数据框时如何使用合并功能。我的问题是我有两个以上(实际上是 4 个)数据库要合并。有没有什么函数可以在一行中合并两个以上的dfs?
【问题讨论】:
-
将错误的欺骗改正。
-
In dupe 也是处理多个 DataFrame 的解决方案。
标签: python pandas dataframe merge concatenation