python – 读取列标题中带有多个分隔符的文件,并在末尾跳过一些行
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 读取列标题中带有多个分隔符的文件,并在末尾跳过一些行,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2373字,纯文字阅读大概需要4分钟。
内容图文
![python – 读取列标题中带有多个分隔符的文件,并在末尾跳过一些行](/upload/InfoBanner/zyjiaocheng/751/ea4e5fb435bc4f5a92c22eee536947c8.jpg)
我是Python的新手,我想用pandas来读取数据.我已经做了一些搜索和努力来解决我的问题,但我仍然在努力.感谢您的帮助!
我的a.txt文件看起来像这样;
skip1
A1| A2 |A3 |A4# A5# A6 A7| A8 , A9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
END***
Some other data starts from here
第一项任务是
我想指定A1,A2,A3,A4,A5,A6,A7,A8和A9作为列名.但是,有多个分隔符,例如”,’|’,’#’,这使得在读取文件时分配分隔符变得麻烦.我试过这个;
import pandas as pd
import glob
filelist=glob.glob('*.txt')
print(filelist)
df = pd.read_csv(filelist,skiprows=1,skipfooter=2,skipinitialspace=True, header=0, sep=r'\| |,|#',engine='python')
但是当我检查Spyder的数据资源管理器df时,似乎什么也没发生.
第二个任务是在读取过程中删除从我不需要的行END ***开始的数据.标题的长度始终相同.但是,skipfooter需要跳过的行数,应该在文件之间进行更改.
已经问了几个问题,但似乎我不能让它们解决我的问题!
how-to-read-txt-file-in-pandas-with-multiple-delimiters
import-text-to-pandas-with-multiple-delimiters
pandas-ignore-all-lines-following-a-specific-string-when-reading-a-file-into-a
编辑:关于删除从行END开始删除数据的读数
如果b.txt文件是这样的
b.txt
skip1
A1| A2 |A3 |A4# A5# A6 A7| A8 , A9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8,9
END123
Some other data starts from here
通过使用下面的第二个解决方案;
txt = open('b.txt').read().split('\nEND')[0]
_, h, txt = txt.split('\n', 2)
pat = r'[\|, ,#,\,]+'
names = re.split(pat, h.strip())
pd.read_csv(
pd.io.common.StringIO(txt),
names=names, header=None,
engine='python')
得到这个,
A1 A2 A3 A4 A5 A6 A7 A8 A9
0 1 2 3 4 5 6 7 8 9
1 1 2 3 4 5 6 7 8 9
2 1 2 3 4 5 6 7 8 9
解决方法:
拆分文件,然后从字符串中读取
txt = open('test.txt').read().split('\nEND***')[0]
pd.read_csv(
pd.io.common.StringIO(txt),
sep=r'\W+',
skiprows=1, engine='python')
A1 A2 A3 A4 A5 A6 A7 A8 A9
0 1 2 3 4 5 6 7 8 9
1 1 2 3 4 5 6 7 8 9
2 1 2 3 4 5 6 7 8 9
我们可以非常明确地解析头部并将文件的其余部分解析为csv
txt = open('test.txt').read().split('\nEND***')[0]
_, h, txt = txt.split('\n', 2)
pat = r'[\|, ,#,\,]+'
names = re.split(pat, h.strip())
pd.read_csv(
pd.io.common.StringIO(txt),
names=names, header=None,
engine='python')
A1 A2 A3 A4 A5 A6 A7 A8 A9
0 1 2 3 4 5 6 7 8 9
1 1 2 3 4 5 6 7 8 9
2 1 2 3 4 5 6 7 8 9
内容总结
以上是互联网集市为您收集整理的python – 读取列标题中带有多个分隔符的文件,并在末尾跳过一些行全部内容,希望文章能够帮你解决python – 读取列标题中带有多个分隔符的文件,并在末尾跳过一些行所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。