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

DataFrame同索引行间操作:合并后多指标计算需求

针对你合并df1和df2后的这些数据处理需求,我整理了一套基于Pandas的实操方案,你可以根据自己的实际数据结构调整细节:

1. 计算intakeNo对应intakeAmt的平均值

这里分两种常见场景给出实现代码:

  • 场景一:每行包含多个intakeNo对应的intakeAmt列(比如列名是intakeNo1_intakeAmt、intakeNo2_intakeAmt等),需要计算每行的平均值:
# 筛选所有带'intakeAmt'的列
intake_amt_cols = df.filter(like='intakeAmt').columns
# 新增列存储每行的平均值
df['intakeAmt_avg'] = df[intake_amt_cols].mean(axis=1)
  • 场景二:按intakeNo分组求平均(比如df里有intakeNo列标记1/2/3...,intakeAmt是对应数值):
# 分组计算平均值并回合并原表
intake_avg = df.groupby('intakeNo')['intakeAmt'].mean().reset_index()
intake_avg.rename(columns={'intakeAmt': 'intakeAmt_avg'}, inplace=True)
df = df.merge(intake_avg, on='intakeNo', how='left')

2. 基于intakeSD行数据计算intakeSD值

假设你说的“intakeSD行”是指索引为intakeSD的行存储了原始计算数据,这里以常见的标准差计算和自定义公式为例:

# 提取intakeSD行的原始数据
sd_raw = df.loc['intakeSD']
# 示例1:计算该组数据的标准差
calculated_sd = sd_raw[intake_amt_cols].std()
# 示例2:用你的特定公式计算(替换成实际公式即可)
# calculated_sd = (sd_raw['raw_value1'] * 0.8) + (sd_raw['raw_value2'] / 2)

# 将计算结果写入指定位置(比如新增一行或列)
df.loc['intakeSD_calculated', intake_amt_cols] = calculated_sd

3. 事件信息(incident information)处理

事件信息通常是字符串格式,这里以拆分字段、标记异常为例:

# 拆分事件内容(假设格式为"事件名称:事件类型")
df[['incident_name', 'incident_type']] = df['incident_info'].str.split(':', expand=True)
# 标记包含特定关键词的异常事件
df['is_abnormal'] = df['incident_info'].str.contains('异常', case=False).astype(int)
# 统计不同事件类型的出现次数
incident_type_stats = df['incident_type'].value_counts()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:11:13