如何用Python Pandas导入无分隔符固定宽度平面文件并转为DataFrame
用Python导入固定宽度无分隔符文件为DataFrame
直接用pandas的read_fwf()方法就能搞定,这是专门处理固定宽度格式文件的工具,比手动切片高效得多,步骤如下:
定义列的位置和名称
根据你给出的字段位置,用元组标记每个字段的起始和结束索引(注意:Python是左闭右开规则,比如0-6位的员工编号,对应起始索引0,结束索引7)。示例如下:# 定义各字段的起止位置(start, end) colspecs = [ (0, 7), # 员工编号(0-6位) (7, 10), # 薪酬要素代码(7-9位) (25, 33) # 员工薪资(25-32位) # 其他字段按同样格式补充 ] # 对应列名 column_names = [ '员工编号', '薪酬要素代码', '员工薪资' # 对应其他字段的名称 ]读取文件并生成DataFrame
导入pandas后调用read_fwf(),传入文件路径、列位置和列名即可:import pandas as pd # 读取文件 df = pd.read_fwf('你的文件路径.txt', colspecs=colspecs, names=column_names)可选:指定数据类型
如果需要转换字段类型(比如薪资转为数值型,避免员工编号开头的0被自动省略),可以添加dtype参数:dtype_config = { '员工薪资': float, '员工编号': str } df = pd.read_fwf('你的文件路径.txt', colspecs=colspecs, names=column_names, dtype=dtype_config)
如果你的文件有特殊编码,还可以加encoding参数(比如encoding='gbk')适配中文环境。
内容的提问来源于stack exchange,提问作者tchos
相关产品推荐
相关产品推荐

