提问人:Rajat Mitra 提问时间:11/18/2023 最后编辑:Trenton McKinneyRajat Mitra 更新时间:11/18/2023 访问量:42
合并 2 个 Pandas 数据帧和 [副本]
Merging 2 Pandas Data Frames and [duplicate]
问:
我有 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赞
SKPS
11/18/2023
#1
您可以使用合并来实现此目的。该参数选择要联接的列,并合并来自不同值的值on
outer
x
pd
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!这奏效了......
评论
df = pd.merge(df1, df2, on="x", how='outer')
ax = df.plot(kind='scatter', x='x', y='y_x')
和df.plot(kind='scatter', x='x', y='y_y', c='tab:orange', ax=ax)