我有一个具有以下格式的固定宽度文件:
5678223313570888271712000000024XAXX0101010006461801325345088800.0784001501.25abc@yahoo.com
5678223324686600271712000000070XAXX0101010006461801325390998280.0784001501.25abc[email protected] /cdn-cgi/l/email-protection 5678123422992299
这是我尝试过的:
import pandas as pd
ColSpecs = [(0,16),(16,31),(31,44),(44,62),(62,70),(70,73),(73,77),(77,127),(127,143)]
df = pd.read_fwf("~/filename.txt",colspecs=ColSpecs,Header=True)
现在这肯定可以帮助我干净地转换为 Pandas 格式。但是,空白(或固定的空白)会被修剪掉。例如:电子邮件字段(#8)有 50 个固定字符集。一旦导入到 Pandas 数据框中,它们就会被截断。
对于数据操作,我创建了 3 个新字段,这些字段是从之前导入的字段的值中提取的。
最终输出文件结构:
[(0,16),(16,31),(31,44),(44,62),(62,70),(70,73),(73,77),(77,127),(127,143) ,(143,153),(153,163),(164,165)]
因为,我还没有在数据帧上找到任何 to_fwf 方法,也没有找到 Pandas -> Flat File (保持原始长度完整)的任何其他替代方法,如果有人有更好的解决方案,我将非常感激。
附: :我读到 Unix 中的 awk/sed 效果更好,但仍然想知道 Python 的情况