【发布时间】:2019-09-03 15:19:32
【问题描述】:
我想读取具有固定宽度格式的文本文件。不幸的是,它还包含一个 varchar 字段,它告诉我开头的长度(所以毕竟宽度不是那么固定)。 该文件看起来像这样
Boris 1520190730 0014likes icecreamblue
Lena 1320190815 0009is blondered
具有如下所示的架构:
{
'name':10,
'age':2,
'last_visit':8,
'other_field':5,
'comment':???,
'fav_color':8
}
在遇到 varchar 字段之前,我的方法是使用 pandas 的 read_fwf 或通过 df[col].str[schema[col][0]:schema[col][1] (稍微修改架构)读取它。对于可变长度字段,这当然会失败。至少该字段在开头告诉我它的长度(0014 和 0009)。
有没有一种优雅的 pandas 方式来读取这样的文件?还是我必须逐行循环并动态处理字段?
【问题讨论】:
标签: python pandas csv varchar fixed-width