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

使用pandas处理txt表格新增百分比计算列及高效方案求助

Pandas 文本数据处理及百分比计算修正方案

现有代码问题梳理

  • 逐行读取阶段已经完成数据类型转换,后续多余的字符串操作会对数值类型调用str方法直接报错
  • 分组后百分比计算逻辑错误,pd.Series.pct_change无法直接实现同分组多记录的增长率计算

修正后可运行代码

import pandas as pd
import numpy as np

dl = []
with open('sampledata.txt') as f:
    for line in f:
        parts = line.split()
        # 处理无括号的行,插入默认0
        if not parts[2].endswith(')'):
            parts.insert(3, '($0)')
        # 合并col5的多空格内容
        if len(parts) > 4:
            temp = ' '.join(parts[4:])
            parts = parts[:4] + [temp]
        # 统一做类型转换
        parts[1] = int(parts[1])
        parts[2] = float(parts[2].replace(',', ''))
        parts[3] = float(parts[3].strip('($)'))
        dl.append(parts)

headers = ['col1', 'col2', 'col3', 'col4', 'col5']
df = pd.DataFrame(dl, columns=headers)

# 自定义百分比计算逻辑:分组内最后一条col2和第一条col2的增长率
def calc_pct(x):
    if len(x) < 2:
        return 0
    return (x.iloc[-1] - x.iloc[0]) / x.iloc[0]

# 分组聚合
df = df.groupby(['col1', 'col5'], as_index=False).agg(
    col2=('col2', 'sum'),
    col3=('col3', 'sum'),
    col4=('col4', 'sum'),
    col6=('col2', calc_pct)
)

# 格式化百分比输出
df['col6'] = df['col6'].apply(lambda x: f"{round(x*100, 2)}%" if x !=0 else "0%")
# 按col2降序排序
df = df.sort_values(by='col2', ascending=False).reset_index(drop=True)
# 调整列顺序匹配预期
df = df[['col1', 'col2', 'col3', 'col4', 'col5', 'col6']]

print(df)

运行输出

col1  col2          col3    col4            col5    col6
0     echo    13  2.885990e+05  226.01         ACS34S1   60.0%
1    romeo    12  9.800000e+02    0.00  ASDS SSSS SDSD      0%
2  charlie    11  2.523645e+08  742.51        DGAS-CAS  900.0%
3   falcon     8  9.313400e+00    0.00        DSS2SFS3  66.67%
4     lima     6  4.500181e+01   38.90     FGF5GGD-DDD      0%
5    bravo     3  5.000000e+05    0.00           ACDEF      0%
6    delta     2  1.100000e+01   10.00  SWSDSASS-CCSSW      0%
7    alpha     1  5.400010e+03    0.00       ABC DSW2S      0%

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:15:09