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

使用Pandas DataFrame无法获取指定格式数据的问题排查

问题解决:Pandas提取数据的日期格式与多余方括号问题

问题根源

你的代码里用了iloc[[linha],[col]]这种双重方括号索引,返回的是二维DataFrame切片,再用.values[0]拿到的是一维数组(比如[Timestamp('1977-01-26 00:00:00')]),不是单个标量值——这就是导出后出现Timestamp格式字符串和多余方括号的核心原因。

解决方案

把所有iloc[[行号],[列号]].values[0]的写法改成iloc[行号, 列号],直接提取单个标量值,同时确保日期被正确识别为Pandas的日期类型。

修正后的代码

linha = 0
# 先初始化空DataFrame,指定列名
df = pd.DataFrame(columns=['Cod_turma', 'Cod_curso', 'Matricula', 'Nome', 'Data', 'Telefone', 'CEP', 'Cidade', 'Estado', 'Situacao', 'Email'])

while True:
    if not pd.isna(dataframe.iloc[linha, 1]): 
        cod_turma = dataframe.iloc[linha, 0]
        cod_curso = dataframe.iloc[linha, 1]
        linha += 1
    else:
        matricula = dataframe.iloc[linha, 0]
        nome = dataframe.iloc[linha, 2]
        # 若原数据是字符串日期,可加pd.to_datetime转换确保类型正确
        data = dataframe.iloc[linha+1, 0]
        telefone = dataframe.iloc[linha+1, 2]
        cep = dataframe.iloc[linha+1, 6]
        cidade = dataframe.iloc[linha+2, 4]
        estado = dataframe.iloc[linha+2, 8]
        situacaomatricula = dataframe.iloc[linha+2, 0]
        email = dataframe.iloc[linha+3, 0]
        
        df = df.append({
            'Cod_turma': cod_turma, 
            'Cod_curso': cod_curso, 
            'Matricula': matricula, 
            'Nome': nome, 
            'Data': data, 
            'Telefone': telefone, 
            'CEP': cep, 
            'Cidade': cidade, 
            'Estado': estado, 
            'Situacao': situacaomatricula, 
            'Email': email
        }, ignore_index=True)
        linha += 4
    
    if linha == 254:
        break

额外优化建议

  1. 若原表格日期是纯字符串,提取时强制转换为日期类型:data = pd.to_datetime(dataframe.iloc[linha+1, 0]),导出Excel时会自动识别为日期格式,而非文本。
  2. 推荐用pd.concat替代已弃用的df.append,数据量较大时效率更高:
    # 初始化列表存储行数据
    rows_list = []
    # 循环中把每行字典加入列表
    rows_list.append({...})
    # 循环结束后生成DataFrame
    df = pd.DataFrame(rows_list)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 05:00:29