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

如何基于多标签提取DataFrame子集并绘制并排散点图

按多条件提取DataFrame子集并绘制并排散点图

嘿,我太懂你说的大数据集用iloc手动找索引的痛苦了——那效率简直低到离谱!别担心,用布尔索引直接按列值筛选才是对付这种场景的正确姿势,完全不用管行的位置,逻辑清晰还高效。

第一步:高效提取目标子集

直接用列的取值条件组合筛选,每个条件用括号括起来,用&表示“且”的关系:

# 提取 cond=A 且 Array=TT 的数据子集
subset_A_TT = df[(df['cond'] == 'A') & (df['Array'] == 'TT')]

# 提取 cond=B 且 Array=S 的数据子集
subset_B_S = df[(df['cond'] == 'B') & (df['Array'] == 'S')]

第二步:绘制并排散点图

用matplotlib的subplots创建1行2列的子图布局,分别在两个子图上绘制对应子集的X-Y散点:

import matplotlib.pyplot as plt

# 创建并排子图,设置合适的画布尺寸
fig, (ax_left, ax_right) = plt.subplots(nrows=1, ncols=2, figsize=(12, 5))

# 左侧子图:绘制A-TT组合的X-Y散点
ax_left.scatter(subset_A_TT['X'], subset_A_TT['Y'], color='#1f77b4', label='A-TT')
ax_left.set_title('cond=A, Array=TT')
ax_left.set_xlabel('X')
ax_left.set_ylabel('Y')
ax_left.legend()
ax_left.grid(alpha=0.3)

# 右侧子图:绘制B-S组合的X-Y散点
ax_right.scatter(subset_B_S['X'], subset_B_S['Y'], color='#ff7f0e', label='B-S')
ax_right.set_title('cond=B, Array=S')
ax_right.set_xlabel('X')
ax_right.set_ylabel('Y')
ax_right.legend()
ax_right.grid(alpha=0.3)

# 调整子图间距,避免标签重叠
plt.tight_layout()
plt.show()

为啥这方法适合大数据集?

  • 完全不用关心行索引的位置,直接基于你需要的cond和Array取值筛选,逻辑清晰不易出错
  • 布尔索引是pandas原生的高效筛选方式,处理大数据集的速度远快于手动定位索引
  • 如果后续数据更新(比如新增行),只要列值符合条件,筛选结果会自动适配,不用重新找索引

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:37:12