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

如何对比MultiIndex结构DataFrame与同索引Series数值并筛选符合条件的行

更简洁高效的实现方案

你完全可以利用pandas的索引对齐特性,避免使用低效的groupby+apply逻辑,推荐两种常用实现:

方案1:向量化布尔筛选(性能最优)

# 直接按前两级索引匹配参考时长,生成布尔掩码后筛选
mask = chunk['durations'] == durations_star.reindex(chunk.index.droplevel('OptionSymbol')).to_numpy()
result = chunk[mask]

这种是纯向量化操作,没有逐组迭代的开销,数据量越大性能优势越明显,输出结果的索引结构和原chunk完全一致,不需要额外调整。

方案2:join关联筛选(可读性最强)

result = chunk.join(
    durations_star.rename('durations_ref'), 
    on=['UnderlyingSymbol', 'Delta']
).query('durations == durations_ref').drop('durations_ref', axis=1)

这种写法逻辑更直观,适合需要快速理解代码逻辑的场景,性能也远优于原实现。
两种方案都不需要做索引重置、逐组匹配操作,代码更简洁,执行效率比你目前的写法高数十倍以上。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:54:03