合并两个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
相关产品推荐
相关产品推荐

