现有一个文本格式的数据,表头如下:
"卡号" "编号" "姓名" "日期" "SSSS" "REPORT_EXAM_TYPE" "REPORT_DATE" "REPORT_EXAM_IMPRESSION" "REPORT_EXAM_CONCLUSION"
下面的数据也是每个变量用 "" 分割且一一对应,但问题是同一个个体的数据不在同一行,所以提取困难,下面举例一个个体的数据:
"0066*****60656" "101****" "xxx" "2016-08-31 08:00:00" "gzdm术" "增强 " "2016-12-29 14:14:10" "1.xxxxxxxxxxx:
xxxxxxxxxxxxxxxxx,xxxxxxxxxxxxxxxxx,xxxxxxxxxxxx;
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,xxxxxxxxxxxxxxxxxxx;
xxxxxxxxxxxxxxxxxxxx。
2.xxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,xx,xxxxxxxxxxx
3.xxxxxxxxxxxxxxx。" "xxxxx:
xxxxxxxxxx,xxx,xx;
"
我以前的做法是手动将数据转化成一行,如:
"0066*****60656" "101****" "xxx" "2016-08-31 08:00:00" "gzdm术" "增强 " "201612-29 14:14:10" "1.xxxxxxxxxxx:xxxxxxxxxxxxxxxxxxxx。2.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,xx,xxxxxxxxxxx3.xxxxxxxxxxxxxx。" "xxxxx:xxxxxxxxxx,xxx,xx;"
然后再用pandas一次提取,代码如下:
import pandas as pd
import re
df = pd.read_table('xxx.txt', encoding='utf-8', sep='\s+')
df.to_excel('xxx.xlsx')
但本次数据包含3000多个个体,手工操作十分麻烦。
希望得到以下解决方案:
- 直接提取数据,每个个体放在excel中的一行,每两个 " 之间的数据放在一个单元格
- 如果不行,希望用代码代替手工操作,将同一个体的数据放到一行(删除同一个体数据中的所有换行符)
十分感谢