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

使用Python和Pandas实现游戏销售数据过滤代码求助

修正后的游戏销售数据集过滤代码

原代码核心错误说明

  • 混淆了列名列表cols与DataFrame的列数据,直接用cols做数值判断完全错误
  • 逻辑运算符误用:三个过滤条件需同时满足,应使用&(逻辑与)而非|(逻辑或)
  • 逐行计算销量和时错误调用sum(),直接对列做加法即可实现逐行运算
  • DataFrame筛选语法错误,正确的条件筛选+列选择需用loc或先筛选再选列的方式

可运行的修正代码

import pandas as pd

df = pd.read_csv('/datasets/vg_sales.csv')
df['user_score'] = pd.to_numeric(df['user_score'], errors='coerce')

developers = ['SquareSoft', 'Enix Corporation', 'Square Enix']
cols = ['name', 'developer', 'na_sales', 'eu_sales', 'jp_sales']

# 定义三个过滤条件
condition1 = (df['na_sales'] > 0) & (df['eu_sales'] > 0) & (df['jp_sales'] > 0)
condition2 = df['jp_sales'] > (df['na_sales'] + df['eu_sales'])
condition3 = df['developer'].isin(developers)

# 组合条件并筛选指定列
df_filtered = df.loc[condition1 & condition2 & condition3, cols]

print(df_filtered)

代码说明

  1. 条件1:确保三个地区销量均大于0,用&连接每个地区的判断,括号避免运算优先级问题
  2. 条件2:逐行判断日本销量是否大于北美+欧洲销量之和,直接对列做加法实现逐行计算
  3. 条件3:用isin()匹配指定开发商列表
  4. 筛选数据:用loc同时指定行条件和列名,语法更清晰且避免链式索引的潜在问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:40:21