免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 18960 | 回复: 2
打印 上一主题 下一主题

python pandas读取CSV问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2020-03-15 21:22 |只看该作者 |倒序浏览
由于需要对产品测试数据进行分析,想到了用Python的pandas进行数据分析,数据源是csv格式的,想到了用read_csv来读取dataframe。
但是数据源的格式很烦人,上半部分是测试的一些Summary,只有一列内容,而测试数据是逗号分隔符的标准csv格式如下图所示:

在pandas读入csv的时候总是会提示:pandas.errors.ParserError: Error tokenizing data. C error: Expected 1 fields in line 146, saw 126
感觉应该是两块数据区域的分隔符不同导致pandas无法读取。自己尝试将两个数据域分成两个csv文件均可以正常读取。

但是考虑到要批量处理,人工分数据域工作量太大,想通过脚本自动执行。
数据源中有一个特殊的字符SITE_NUM,初步想法是查找SITE_NUM所在行,
将SITE_NUM所在行前面的数据存为一个CSV文件,将SITE_NUM所在行后面的数据存为另一个CSV文件,再通过pandas进行处理。

在网上查找了很多方法,都不太好实现,想请教一下有什么比较好的处理方法。
最好是python直接处理,因为后续数据分析还想要用python。

附件是数据源,谢谢大家~
rawData.zip (152.59 KB, 下载次数: 11)



论坛徽章:
8
2016科比退役纪念章
日期:2018-10-24 08:24:0115-16赛季CBA联赛之北控
日期:2019-03-12 14:34:562016科比退役纪念章
日期:2019-04-01 10:33:0915-16赛季CBA联赛之山东
日期:2019-04-17 12:46:3215-16赛季CBA联赛之广夏
日期:2019-05-09 16:40:4015-16赛季CBA联赛之广夏
日期:2019-10-10 15:33:4015-16赛季CBA联赛之辽宁
日期:2019-10-15 08:37:0615-16赛季CBA联赛之北控
日期:2021-03-30 15:53:34
2 [报告]
发表于 2020-03-16 14:26 |只看该作者
首先源格式因为前半部分存在就不是严格的csv,如果用awk或sed先分成两个csv再处理也可以,不过其实你只需知道真正的数据行是哪行开始的,即找到 ”SITE_NUM“ 所在的行号就可以了。
那最直接的就是先文本先读进来,再找目标行:
  1. with open("1.csv","r") as f:
  2.      for i,line in enumerate(f,start=1):
  3.          if "SITE_NUM" in line:
  4.              print("数据开始行号",i)
  5.              break
复制代码

开始行号知道了,你后面pandas就好处理了吧。

评分

参与人数 1可用积分 +10 收起 理由
飘絮絮絮丶 + 10 赞一个!

查看全部评分

论坛徽章:
0
3 [报告]
发表于 2020-03-18 16:29 |只看该作者
回复 2# cfwyy

了解,谢谢~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP