python-3.x - 如何将异常格式的文本文件导出到熊猫数据框中
问题描述
我需要将大量文本数据文件合并到一个 Excel 电子表格中。我试图阅读的每个文件看起来像这样: ......如果在笔记本中打开
如果我只是使用 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 - django 脆皮表单覆盖布局对象模板被忽略
- vb.net - 在 InitializeComponent 中强制更新
- json - 当 uboxing truffle react 时,没有 package.json 文件。结果,我无法启动程序
- javascript - 重复选择选择字段
- python-3.x - docplex 如何使用本地求解器?
- javascript - 如何在客户端 reactjs 上使用基于角色的身份验证?
- android - Android,什么文件定义了最低屏幕亮度?
- google-apps-script - Google Script - 如果列中的单元格包含特定值,则隐藏列
- javascript - Recharts - 如何为“step”类型的区域组件添加圆角
- c# - 在 C# 中使用 HttpClient 使用原始 Json POST API