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

如何更高效简洁地编写提取DataFrame行整数值的Pandas代码

优化后的简洁高效写法

你可以利用pandas的内置向量化方法简化代码,避免手动循环和冗余的Series转换,以下是几种更优的实现方式:

基础简洁版

Me = df.loc[s[0], 'ipo_oso':'neg'].dropna().astype(int).tolist()

说明:

  • df.loc[s[0], 'ipo_oso':'neg'] 直接返回目标行的指定列范围,本身就是Series,无需额外用pd.Series()包裹
  • dropna() 直接剔除缺失值
  • astype(int) 批量将数值转换为整数(向量化操作,比手动循环效率更高)
  • tolist() 直接将Series转为整数列表

健壮性增强版(处理非数值型数据)

如果目标列中可能存在非数值类型的内容,可以先统一转为数值再处理缺失值:

Me = pd.to_numeric(df.loc[s[0], 'ipo_oso':'neg'], errors='coerce').dropna().astype(int).tolist()

说明:

  • pd.to_numeric(..., errors='coerce') 会将无法转为数值的内容强制转为NaN,确保后续dropna()能统一处理
  • 其余步骤和基础版一致

效率对比

原代码中[int(x) for x in np.array(Me)]是逐元素循环的标量操作;而pandas的astype(int)是基于numpy的向量化操作,在数据量较大时,运行效率会显著提升,同时代码更简洁易读。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 00:45:45