首页 > 解决方案 > 如何将异常格式的文本文件导出到熊猫数据框中

问题描述

我需要将大量文本数据文件合并到一个 Excel 电子表格中。我试图阅读的每个文件看起来像这样: ......如果在笔记本中打开

... 如果在 Word 文档中打开并显示格式符号

如果我只是使用 pd.read_csv() 我有一个错误“ParserError: Error tokenizing data.C error: Expected 42 fields in line 13, saw 46”所以我用这段代码尝试将数据放入熊猫数据帧:

s = pd.read_fwf('data\Summary013019.txt',skiprows = 1)

sm = s[s.columns[:17]].copy()


print('dims',s.shape)
new_index = range(sm.shape[0])
sm.reindex(new_index).head()
sm.dropna(inplace = True)
sm.drop(['Unnamed: 1', 'Unnamed: 2', 'Unnamed: 4',
'Unnamed: 5', 'Unnamed: 7', 'Unnamed: 8',
'Unnamed: 10', 'Unnamed: 11', 'Unnamed: 12',
'Unnamed: 14', 'Unnamed: 15'],axis = 1, inplace = True)


sm.columns = ['number','sample','areaEt','area_nprop','ratio','conc']
ssm = sm.iloc[1:-2,:]
ssm.set_index('number', inplace = True)

当我打开它时,数据框看起来很好,但是,数字格式存在问题,因此我无法继续并在 Excel 中合并文件以进行进一步计算。 ssm.info() 给了我这个:

<class 'pandas.core.frame.DataFrame'> Index: 88 entries, 1 to 88
Data columns (total 5 columns): sample 88 non-null object areaEt 88 non-null object area_nprop 88 non-null object ratio 88 non-null object conc 88 non-null object dtypes: object(5) memory usage: 4.1+ KB

如何为我的列获得正确的(int 或 float)格式?我尝试了其他方法将文本文件转换为熊猫数据框,我尝试在 pd.read_fwf() 中使用 dtype 属性 - 没有任何效果。或者,我可能需要使用完全不同的方法来导出文本文件?非常感谢任何帮助。

标签: python-3.xfile-read

解决方案


推荐阅读