You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

合并两个Pandas DataFrame并绘制不同颜色散点图的实现方法

合并Pandas DataFrame并绘制不同颜色散点图

1. 合并两个DataFrame

你可以使用Pandas的merge()方法,通过x列做外连接(outer join),并通过suffixes参数指定列名后缀,直接得到目标格式的合并结果:

import pandas as pd

# 构造示例数据
pd1 = pd.DataFrame({'x': [0.0, 0.2, 0.5], 'y': [1.2, 1.4, 2.6]})
pd2 = pd.DataFrame({'x': [0.0, 0.3, 0.8], 'y': [1.5, 4.6, 2.4]})

# 合并数据
merged_df = pd.merge(pd1, pd2, on='x', how='outer', suffixes=('(pd1)', '(pd2)'))
print(merged_df)

运行后输出结果:

x  y(pd1)  y(pd2)
0  0.0     1.2     1.5
1  0.2     1.4     NaN
2  0.5     2.6     NaN
3  0.3     NaN     4.6
4  0.8     NaN     2.4

2. 绘制不同颜色的散点图

使用matplotlib.pyplot可以轻松实现不同颜色的散点绘制,分别选取合并后的y(pd1)和y(pd2)列数据,指定不同颜色并添加图例:

import matplotlib.pyplot as plt

# 创建画布
plt.figure(figsize=(8, 5))

# 绘制pd1的散点,颜色设为红色
plt.scatter(merged_df['x'], merged_df['y(pd1)'], color='red', label='y(pd1)')
# 绘制pd2的散点,颜色设为蓝色
plt.scatter(merged_df['x'], merged_df['y(pd2)'], color='blue', label='y(pd2)')

# 添加图例、坐标轴标签和标题
plt.legend()
plt.xlabel('x')
plt.ylabel('y')
plt.title('Scatter Plot of y(pd1) and y(pd2) vs x')

# 显示图形
plt.show()

这段代码会生成一张散点图,其中来自pd1的点为红色,pd2的点为蓝色,图例清晰区分两组数据。

内容的提问来源于stack exchange,提问作者Rajat Mitra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 04:00:13