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

如何修正Pandas代码以正确构建指定结构的DataFrame?

修正Pandas DataFrame数据组织问题

问题背景

需要将给定的字符串数据拆分生成包含「Nota de Título」和「Nota Total」两列的DataFrame:分号前的数值放入第一列,分号后的数值放入第二列,但原代码无法正确组织数据。

原代码核心问题

  1. 变量名拼写错误:定义的变量是sequence,但后续使用了sequencia.split(),会直接报错
  2. 无效数据未过滤:错误地处理了所有空格分割后的项,包括那些没有分号的孤立数值(比如130.00、128,00),这些是干扰数据,不应进入最终DataFrame

修正方案与代码

修正步骤

  • 统一字符串空格格式:将多连续空格替换为单个空格,避免分割出空字符串
  • 过滤有效项:只保留包含分号的项,排除孤立数值
  • 拆分有效项:按分号拆分后提取左右两边的内容,存入对应列表
  • 生成目标DataFrame
import pandas as pd 

# 原始数据序列
sequence = "10 ;131,00 0; 131,00 130.00 10; 130.00 2 ;130.00  0 ;129.00  10 ;129.00  128,00 2; 128.00  10; 128,00 5; 127,00 127.00 127.00 5 ;127,00 0; 126,00 5 ;126,00 5 ;126,00 10; 126,00"

# 标准化空格并分割
processed_items = ' '.join(sequence.split()).split(' ')

notas_titulo = []
notas_total = []

# 仅处理包含分号的有效数据项
for item in processed_items:
    if ';' in item:
        titulo, total = [part.strip() for part in item.split(';')]
        notas_titulo.append(titulo)
        notas_total.append(total)

# 生成目标DataFrame
df_notas = pd.DataFrame({
    'Nota de Título': notas_titulo,
    'Nota Total': notas_total
})

# 输出结果
print(df_notas)

最终输出结果

Nota de Título Nota Total
0             10     131,00
1              0     131,00
2             10     130.00
3              2     130.00
4              0     129.00
5             10     129.00
6              2     128.00
7             10     128,00
8              5     127,00
9              5     127,00
10             0     126,00
11             5     126,00
12             5     126,00
13            10     126,00

内容的提问来源于stack exchange,提问作者Luiz Mário Andrade

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 14:43:18