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

pandas DataFrame列提取两个子字符串间内容返回NaN问题排查

你遇到的问题核心原因是contract列存储的不是字符串格式的文本,而是Future、Stock类的实际实例对象。Pandas的.str字符串访问器仅对字符串类型的Series生效,对类实例调用.str相关方法自然会返回全NaN的结果。


方案1:直接调用实例属性(更推荐)

你这些实例本身就自带symbol属性,直接通过apply取属性值即可,不需要做正则提取,性能和准确率都更高:

df['symbol'] = df['contract'].apply(lambda x: x.symbol)

方案2:转字符串后正则提取

如果你确实需要走正则提取的逻辑,先把contract列强制转为字符串类型,再执行正则匹配即可:

df['symbol'] = df['contract'].astype(str).str.extract(r"symbol='(.*?)'")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:54:03