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

如何从字符串列表提取数字并在DataFrame生成按税率汇总的列

提取税种税率并生成汇总DataFrame方案

1. 需求说明

现有从DataFrame中提取的字符串列表:

['CGST- INPUT 9% MAHARASHTRA',
'SGST-INPUT 9% MAHARASHTRA',
'CGST INPUT @6% MAHARASHTRA',
'SGST INPUT @6% MAHARASHTRA',
'CGST- INPUT 2.50% MAHARASHTRA',
'SGST-INPUT 2.50% MAHARASHTRA',
'TDS ON OFFICE RENT',
'TDS ON CONTRACTOR',
'TDS ON CONSULTANTS',
'TDS ON OFFICE RENT (COMPANY)',
'TDS ON CONSULTANY FEE']

需完成以下操作:

  • 从字符串中提取数字作为税率(Rate)
  • 生成包含Rate、CGST、SGST、TDS列的DataFrame
  • 按税率汇总对应税种的数值,最终输出格式示例:
RateCGSTSGSTTDS
9XXXXXX
6XXXXXX
2.50XXXXXX

2. 代码实现

使用Python的pandas库结合正则表达式完成处理,代码如下:

import pandas as pd
import re

# 原始字符串列表
col_list = [
    'CGST- INPUT 9%  MAHARASHTRA',
    'SGST-INPUT 9%  MAHARASHTRA',
    'CGST INPUT @6% MAHARASHTRA',
    'SGST INPUT @6% MAHARASHTRA',
    'CGST- INPUT 2.50%  MAHARASHTRA',
    'SGST-INPUT 2.50%  MAHARASHTRA',
    'TDS ON OFFICE RENT',
    'TDS ON CONTRACTOR',
    'TDS ON CONSULTANTS',
    'TDS ON OFFICE RENT (COMPANY)',
    'TDS ON CONSULTANY FEE'
]

processed_data = []
for col in col_list:
    # 提取税率:匹配整数或小数格式的数字
    rate_match = re.search(r'(\d+\.?\d*)%?', col)
    rate = rate_match.group(1) if rate_match else 'N/A'
    
    # 标记对应税种
    if 'CGST' in col:
        processed_data.append({'Rate': rate, 'CGST': 1, 'SGST': 0, 'TDS': 0})
    elif 'SGST' in col:
        processed_data.append({'Rate': rate, 'CGST': 0, 'SGST': 1, 'TDS': 0})
    elif 'TDS' in col:
        processed_data.append({'Rate': rate, 'CGST': 0, 'SGST': 0, 'TDS': 1})

# 转换为DataFrame并按税率汇总
df = pd.DataFrame(processed_data)
summary_df = df.groupby('Rate').sum().reset_index()
# 调整列顺序
summary_df = summary_df[['Rate', 'CGST', 'SGST', 'TDS']]

print(summary_df)

3. 代码说明

  • 税率提取:通过正则表达式r'(\d+\.?\d*)%?'匹配字符串中的整数或小数,兼容带%符号的格式;TDS类无税率的标记为N/A
  • 税种标记:通过字符串关键词判断税种,为对应列赋值1,其余列赋值0
  • 分组汇总:按Rate分组后求和,得到各税率下对应税种的汇总数量(若需汇总金额,只需将初始赋值替换为对应金额即可)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 07:25:18