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

如何将逐行计算得到的多个结果存储到不同的新列中?

按行根据类型生成统计新列

Python(Pandas)实现

可以通过逐行处理或批量计算两种方式实现,批量计算更适合大数据量场景。

方法1:逐行处理(代码直观,小数据量适用)

import pandas as pd
import numpy as np

# 构造示例输入表
inputTable = pd.DataFrame({
    'type': ['a', 'b', 'a', 'b'],
    'col1': [10, 20, 5, 15],
    'col2': [8, 25, 3, 18],
    'col3': [12, 15, 7, 22]
})

def calculate_row(row):
    cols = [row['col1'], row['col2'], row['col3']]
    if row['type'] == 'a':
        return pd.Series([min(cols), max(cols)], index=['newCol1', 'newCol2'])
    elif row['type'] == 'b':
        return pd.Series([np.mean(cols), np.std(cols, ddof=0)], index=['newCol1', 'newCol2'])

# 合并新列到原表
outputTable = pd.concat([inputTable, inputTable.apply(calculate_row, axis=1)], axis=1)

方法2:批量计算(效率更高,大数据量推荐)

利用numpy条件判断结合行级统计函数,避免逐行循环:

import pandas as pd
import numpy as np

inputTable = pd.DataFrame({
    'type': ['a', 'b', 'a', 'b'],
    'col1': [10, 20, 5, 15],
    'col2': [8, 25, 3, 18],
    'col3': [12, 15, 7, 22]
})

# 预计算所有行的统计值
row_mins = inputTable[['col1','col2','col3']].min(axis=1)
row_maxs = inputTable[['col1','col2','col3']].max(axis=1)
row_means = inputTable[['col1','col2','col3']].mean(axis=1)
row_stds = inputTable[['col1','col2','col3']].std(axis=1, ddof=0)

# 根据type选择对应值填充新列
outputTable = inputTable.copy()
outputTable['newCol1'] = np.where(outputTable['type'] == 'a', row_mins, row_means)
outputTable['newCol2'] = np.where(outputTable['type'] == 'a', row_maxs, row_stds)

SQL实现

以MySQL为例,利用CASE WHEN语句结合行级统计函数实现:

SELECT
    type,
    col1,
    col2,
    col3,
    CASE
        WHEN type = 'a' THEN LEAST(col1, col2, col3)
        WHEN type = 'b' THEN (col1 + col2 + col3)/3
    END AS newCol1,
    CASE
        WHEN type = 'a' THEN GREATEST(col1, col2, col3)
        WHEN type = 'b' THEN STDDEV_POP(col1, col2, col3)
    END AS newCol2
FROM inputTable
  • PostgreSQL可将标准差函数替换为STDDEV(col1, col2, col3);
  • SQL Server计算行级最小值可嵌套MIN子查询,标准差用STDEV(col1, col2, col3)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 14:35:03