python - 使用 Python 解析混合平面文件数据以写入 xls
问题描述
我有一个包含大量混合类型数据的复杂平面文件。尝试使用 Python 解析它(我最熟悉),成功地使用手动解析来分类分离数据。
现在卡在我已经提取数据并需要将其制成表格的地方,以便我可以使用 pandas 或任何其他库将其写入 xls。
我在 pastebin 粘贴了数据,网址是https://pastebin.com/qn9J5nUL
数据有非表格和表格格式,我需要丢弃非表格数据,只需将表格数据写入xls。准确地说,我想删除以下数据-
ABC Command-----UIP BLOCK:;
SE : ABC_UIOP_89TP
Report : +ve ABC_UIOP_89TP 2016-09-23 15:16:14
O&M #998459350
%%/*Web=1571835373:;%%
ID = 0 Result Ok.
并且仅将以下格式数据转换为 xls(示例,不准确。请参阅 pastebin url 以查看完整的数据格式) -
Local Info ID ID Name ID Frequency ID Data My ID
0 XXX_1 0 12 13
解决方案
由于您的数据文件具有某种模式,我认为您可以这样做。
import pandas
s = []
e = []
with open('data_to_be_parsed.txt') as f:
datafile = f.readlines()
for idx,line in enumerate(datafile):
if 'Local' in line:
s.append(idx)
if '(Number of results' in line:
e.append(idx)
maindf = pd.DataFrame()
for i in range(len(s)):
head = list(datafile[s[i]].split(" "))
head = [x for x in head if x.strip()]
tmpdf = pd.DataFrame(columns=head)
for l_ in range(s[i]+1,e[i]):
da = datafile[l_]
if len(da)>1:
data = list(da.split(" "))
data = [x for x in data if x.strip()]
tmpdf = tmpdf.append(dict(zip(head,data)),ignore_index=True)
maindf = pd.concat([maindf,tempdf])
maindf.to_excel("output.xlsx")
推荐阅读
- search - 剑道自动完成搜索()方法不起作用
- laravel - 为什么在没有 CSS LARAVEL 的情况下加载视图
- java - 转换扩展类以支持在多线程模式下以最少的更改行并行执行
- node.js - 从 blob 存储读取文件作为 readableStream 停止在两者之间
- html - 在 v-expansion-panel-header 中将文本左对齐
- python - 两种迭代解决方案,一种使用指针,另一种使用 for 循环,但指针具有更好的时间复杂度 - 为什么?
- eclipse-rcp - 如何在 RCP 应用程序中使用 maven
- python - 将 ListAPIView 端点标头中的令牌从一个 api 传递到另一个 Django REST
- angular - 从 ngTemplate 为多个 ng-contents 提供数据
- javascript - 从对象中删除属性,同时在 Javascript / TypeScript 中保持原始对象不变