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

如何基于行Orders数值规则转换表格列数据,批量修改对应条目

实现思路

  • 先按Region维度统计每个车型的订单量阈值标记:筛选Variable = 'Orders'的行,判断每个车型的订单值是否小于100,得到「区域-车型」的需要置零标记
  • 遍历所有行,对非Orders类型的变量行,若对应「区域-车型」命中置零标记,直接将该单元格值改为0

Python Pandas 实现代码

假设你已经将表格读取为DataFrame对象df,可直接运行以下代码:

import pandas as pd

# 1. 生成置零标记表:key为Region,value对应各车型是否需要置零的布尔值
flag_df = df[df['Variable'] == 'Orders'].set_index('Region')[['Audi', 'Porsche']] < 100

# 2. 逐车型逐区域匹配规则修改值
for car_brand in ['Audi', 'Porsche']:
    for region in flag_df.index:
        if flag_df.loc[region, car_brand]:
            df.loc[(df['Region'] == region) & (df['Variable'] != 'Orders'), car_brand] = 0

SQL 实现代码

如果数据存储在数据库表中(表名假设为car_sales),可通过窗口函数实现:

SELECT 
    Region,
    Variable,
    CASE WHEN Variable != 'Orders' AND Audi_orders < 100 THEN 0 ELSE Audi END AS Audi,
    CASE WHEN Variable != 'Orders' AND Porsche_orders < 100 THEN 0 ELSE Porsche END AS Porsche
FROM (
    SELECT 
        *,
        MAX(CASE WHEN Variable = 'Orders' THEN Audi END) OVER (PARTITION BY Region) AS Audi_orders,
        MAX(CASE WHEN Variable = 'Orders' THEN Porsche END) OVER (PARTITION BY Region) AS Porsche_orders
    FROM car_sales
) t

输出结果

两种实现方式最终输出结果完全匹配预期:

RegionVariableAudiPorsche
AustraliaOrders500020
AustraliaPrice500000
AustraliaColorred0
FranceOrders99100
FrancePrice0100000
FranceColor0blue

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:54:10