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

Pandas DataFrame中Vendor列条件筛选及对应列求和问题

解决方法
  • 先将float类型的Vendor列转换为字符串类型,再筛选以'6'开头的行,最后对目标列求和:
# 处理空值(可选,根据实际数据情况)
filtered_df = df[df['Vendor'].notna()]
# 转换为字符串并筛选以6开头的行
filtered_df = filtered_df[filtered_df['Vendor'].astype(str).str.startswith('6')]
# 对目标列求和
total_amount = filtered_df['Amount in loc.curr.2'].sum()
print(total_amount)
  • 简化版(自动忽略NaN,因为astype(str)后NaN会转为'nan',startswith('6')会返回False):
total_amount = df[df['Vendor'].astype(str).str.startswith('6')]['Amount in loc.curr.2'].sum()

之前尝试失败的原因

  • 方案1直接对float列使用str[0]会报错,Pandas的字符串方法仅适用于字符串类型列,必须先转换类型。
  • 方案2用数值区间600<=Vendor<700的逻辑有局限性,只能匹配600-699的整数,会漏掉6.0、60.0、6000.0这类以6开头但不在该区间的数值,字符串匹配的方法更准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:20:28