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

Google Colab中pandas DataFrame如何正确导出完整Excel/CSV数据

导出异常问题解决方法

异常原因

  • 爬取得到的文本首尾自带换行符\n,Excel识别后会自动将内容拆分到多行,你遇到的异常效果如下:
    导出异常效果
  • 当前存储逻辑是将单个人的「姓名、所属机构、职位」3项信息作为独立行存入列表,本身就不符合结构化数据的排版要求。

修正代码

方案1:将3项信息合并为单条记录存储(占1列)

import pandas as pd
from google.colab import files
from bs4 import BeautifulSoup

# 假设soup已经初始化完成
tmpList = []
speaker_name = soup.find_all('h4', class_ = 'clearfix Roboto-Medium font15 sbl-t t-b-m0 dks-t l-h20' )  

# 先清理所有文本的首尾空白、换行
cleaned_text = [item.text.strip() for item in speaker_name]
# 按3个元素为一组拼接,对应单个人的完整信息
for i in range(0, len(cleaned_text), 3):
    if i+2 < len(cleaned_text):
        # 可自定义分隔符,比如空格、顿号、斜杠等
        full_info = f"{cleaned_text[i]} / {cleaned_text[i+1]} / {cleaned_text[i+2]}"
        tmpList.append(full_info)

df1 = pd.DataFrame(tmpList, columns=['人员信息'])
# 导出时指定utf-8-sig编码,避免Excel打开乱码
df1.to_csv('sample.csv', encoding='utf-8-sig', index=False)
files.download("sample.csv")

方案2:拆分为3列存储(更规范,推荐)

import pandas as pd
from google.colab import files
from bs4 import BeautifulSoup

# 假设soup已经初始化完成
tmpList = []
speaker_name = soup.find_all('h4', class_ = 'clearfix Roboto-Medium font15 sbl-t t-b-m0 dks-t l-h20' )  

cleaned_text = [item.text.strip() for item in speaker_name]
for i in range(0, len(cleaned_text), 3):
    if i+2 < len(cleaned_text):
        tmpList.append({
            '姓名': cleaned_text[i],
            '所属机构': cleaned_text[i+1],
            '职位': cleaned_text[i+2]
        })

df1 = pd.DataFrame(tmpList)
df1.to_csv('sample.csv', encoding='utf-8-sig', index=False)
files.download("sample.csv")

关键修改点说明

  • 用strip()方法清理了每个文本首尾的换行符、多余空白,避免Excel识别到换行符自动拆行
  • 调整了数据存储逻辑,把原本分散的3行信息合并为单条人员记录,符合正常的表格排版要求
  • 导出csv时指定encoding='utf-8-sig',避免中文内容在Excel中打开出现乱码
  • 导出时加index=False,避免把pandas的自动行序号也存入csv文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:39:03