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

Pandas读取LinkedIn导出CSV文件遇UnicodeDecodeError问题求助

解决LinkedIn广告CSV文件读取的UnicodeDecodeError问题

问题根源

  1. 编码不匹配:错误里的0xff字节是UTF-16 LE编码的BOM标记,pandas默认用UTF-8解码,导致解码失败。
  2. 文件开头有非数据行:LinkedIn广告报告CSV前5行是报告标题、时间范围等说明内容,直接读取会打乱数据结构。
  3. 分隔符不是逗号:这类导出文件实际是制表符(\t)分隔,而非默认的逗号分隔。

修复后的代码

import os
import glob
import pandas as pd

path = r'C:\Users\FilePath' # 替换成你的实际文件路径
all_files = glob.glob(os.path.join(path, "*.csv"))

# 批量读取并合并文件,处理编码、非数据行和分隔符问题
dfAllDataLI = pd.concat(
    (pd.read_csv(
        f,
        encoding='utf-16',  # 匹配LinkedIn导出文件的UTF-16编码
        skiprows=5,         # 跳过开头5行非数据说明
        sep='\t'            # 指定制表符作为列分隔符
    ) for f in all_files), 
    ignore_index=True
)

dfAllDataLI = dfAllDataLI.fillna('')

参数说明

  • encoding='utf-16':针对性解决UTF-16编码的解码错误,自动识别文件开头的BOM标记。
  • skiprows=5:跳过前5行无关内容,直接读取有效数据行。
  • sep='\t':适配LinkedIn导出文件的制表符分隔格式,确保列拆分正确。

验证小技巧

如果不确定需要跳过的行数,可以先单独读取一个文件查看内容结构:

test_df = pd.read_csv('你的单个报告文件.csv', encoding='utf-16', sep='\t')
print(test_df.head(10))

根据输出调整skiprows的数值,保证表头和数据行准确对应。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 01:55:20