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

Python处理Excel衍生列表:按行汇总功率并计算电流

解决方案

核心思路

把原始扁平列表转换成结构化DataFrame,通过动态分组汇总适配任意数量通道,补全缺失行号后计算电流。

代码实现步骤

1. 转换原始列表为结构化DataFrame

先拆分你的扁平列表,提取行号和对应通道功率,构建可分组的数据结构:

import pandas as pd

# 示例原始列表(偶数索引=行号,奇数索引=对应通道功率)
raw_list = [1, 12.5, 1, 18.3, 3, 9.7, 4, 5.2, 4, 11.1]

# 拆分行号与功率数组
row_numbers = raw_list[::2]  # 取偶数索引(从0开始)的元素作为行号
channel_powers = raw_list[1::2]  # 取奇数索引的元素作为对应通道的功率

# 构建DataFrame
df = pd.DataFrame({
    '行号': row_numbers,
    '功率': channel_powers
})

2. 按行号分组汇总功率

用groupby实现动态分组,自动汇总同一行的所有通道功率,不受通道数量限制:

# 按行号分组求和,保留行号为列(as_index=False)
summary_df = df.groupby('行号', as_index=False)['功率'].sum()

3. 补全缺失的行号

生成完整行号序列,合并汇总数据后为缺失行填充功率0:

# 获取行号的范围边界
min_row = summary_df['行号'].min()
max_row = summary_df['行号'].max()

# 生成从最小到最大的完整行号序列
full_row_range = pd.DataFrame({'行号': range(min_row, max_row + 1)})

# 合并数据,缺失行的功率用0填充
full_summary = pd.merge(full_row_range, summary_df, on='行号', how='left').fillna(0)

4. 计算每行电流

替换为你实际的电流计算公式即可,示例用电流=功率/电压:

# 示例:假设电压为220V
voltage = 220
full_summary['电流'] = full_summary['功率'] / voltage

进阶:直接从Excel读取处理(跳过手动生成列表)

如果能直接读取Excel的两个Sheet,可避免手动生成列表的误差,效率更高:

# 读取Excel文件
sheet1 = pd.read_excel('你的文件.xlsx', sheet_name='Sheet1')  # 包含行号、通道号
sheet2 = pd.read_excel('你的文件.xlsx', sheet_name='Sheet2')  # 包含通道号、功率匹配规则

# 关联通道与功率(假设Sheet1有"行号""通道号",Sheet2有"通道号""功率")
merged_data = pd.merge(sheet1, sheet2, on='通道号', how='left').fillna(0)

# 按行号汇总功率
summary_df = merged_data.groupby('行号', as_index=False)['功率'].sum()

# 后续补全缺失行、计算电流的步骤和上面一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 15:29:56