合并 2 个 Pandas 数据帧和 [副本]

Merging 2 Pandas Data Frames and [duplicate]

提问人:Rajat Mitra 提问时间:11/18/2023 最后编辑:Trenton McKinneyRajat Mitra 更新时间:11/18/2023 访问量:42

问:

我有 2 个 Pandas 数据帧,比如 pd1 和 pd2

pd1
x     y
0.0   1.2
0.2   1.4
0.5   2.6

PD2

x     y
0.0   1.5
0.3   4.6
0.8   2.4

我想像这样合并这些数据帧

x     y(pd1)  y(pd2)
0.0   1.2     1.5
0.2   1.4     NaN
0.3   NaN     4.6
0.5   2.6     Nan
0.8   NaN     2.4

然后我想用不同的颜色散点图 (x,y(pd1), y(pd2)) 你能告诉我怎么做吗?

蟒蛇 熊猫

评论

0赞 Trenton McKinney 11/18/2023
您可以在 SO 帖子中提出一个问题。根据副本df = pd.merge(df1, df2, on="x", how='outer')
0赞 Trenton McKinney 11/18/2023
ax = df.plot(kind='scatter', x='x', y='y_x')df.plot(kind='scatter', x='x', y='y_y', c='tab:orange', ax=ax)

答:

0赞 SKPS 11/18/2023 #1

您可以使用合并来实现此目的。该参数选择要联接的列,并合并来自不同值的值onouterxpd

merged = pd.merge(pd1, pd2, on='x', how='outer')

评论

0赞 Rajat Mitra 11/19/2023
非常感谢特伦顿。有没有办法像我在上面的例子中那样创建 2 个单独的列?只需合并 x 值并保留 2 个单独的 y'x ?
0赞 Venkat 11/20/2023
@RajatMitra,试试这个 merged = pd.merge(pd1, pd2, on='x', how='outer',suffixes=('_x', '_y'))#“_x” for left df, “_y” for right df
0赞 Rajat Mitra 11/23/2023
非常感谢Venkat!这奏效了......