做文本分析,数据从 Excel 来是常态。但 pandas 一读,十有八九遇到:
- 中文列名变 NaN
- 数字变成科学计数法
- 日期变成一串 45291 这样的数字
- 长文本被截断
最常踩的坑是编码,解决方法很简单:
df = pd.read_excel("data.xlsx", dtype=str)
# 或者
df = pd.read_csv("data.csv", encoding="gbk")
|
dtype=str 是关键,不然带前导 0 的手机号、身份证号全没了。
日期那串数字其实是 Excel 的序列值(1900 年起算的天数),用这个转:
from datetime import datetime, timedelta real_date = datetime(1899, 12, 30) + timedelta(days=45291) |
做电商数据导出的同学,先看编码,再看 dtype,基本能解决 80% 的坑。
本文由 BBZ · 小朵科技工作室 出品。配套工具:数据预处理软件 P03。