【发布时间】:2019-04-15 23:28:51
【问题描述】:
我正在尝试从 csv 文件中获取一些项目,但是有一个问题,它有不同的列数,所以我不能使用 pandas.read_csv(filepath) 函数来读取它。我需要打开它,然后我可以选择一些显示的项目。 csv文件如下(每行之间加了一个空行,方便大家阅读):
“路径”、“文件”、“获取日期”、“样本”、“其他”
"C:\msdchem\2\DATA\AlbertVirgili\DaniGM\","DGM_CPTIS003 1h.D","25-Mar-19, 11:55:48","DGM_CPTIS003 1h",""
“INT FID1A.CH”
“2019 年 3 月 25 日星期一 17:48:31”
"峰值","R.T.","开始","结束","PK TY","高度","面积","Pct Max","Pct Total"
1, 2.082, 2.063, 2.189,"BB",223849319,4951058782,100.00, 46.349
2, 2.317, 2.281, 2.386,"BB",73209942,1093871144, 22.09, 10.240
3, 3.343, 3.224, 3.403,"BB",93165657,2220621038, 44.85, 20.788
4, 5.538, 5.409, 5.598,"BB",51783798,1975386485, 39.90, 18.492
5, 5.744, 5.693, 5.803,"BB",24084957,360235490, 7.28, 3.372
6, 8.716, 8.676, 8.776,"BB",8566883, 80973220, 1.64, 0.758
“路径”、“文件”、“获取日期”、“样本”、“其他”
"C:\msdchem\2\DATA\AlbertVirgili\DaniGM\","DGM_CPTIS003 2h.D","25-Mar-19, 12:15:42","DGM_CPTIS003 2h",""
“INT FID1A.CH”
“2019 年 3 月 25 日星期一 12:31:45”
"峰值","R.T.","开始","结束","PK TY","高度","面积","Pct Max","Pct Total"
1, 2.083, 2.064, 2.194,"BB",232382153,5255486688,100.00, 59.673
2, 2.318, 2.282, 2.384,"BB",37916041,587535474, 11.18, 6.671
3, 3.322, 3.241, 3.381,"BB",67715293,1373898201, 26.14, 15.600
4, 5.509, 5.406, 5.569,"BB",39502747,1227609422, 23.36, 13.939
5, 5.731, 5.689, 5.791,"BB",17799521,230201751, 4.38, 2.614
6, 8.717, 8.674, 8.776,"BB",12367646,132409300, 2.52, 1.503
我需要做的是阅读标题下的项目:Peak, R.T., Start, End, PK TY,... 但我不能这样做,因为它们与前几行的长度不同(带有标题路径、文件、获取日期...)。我不能使用 skiprows 函数来消除 0-3 和 11-14 中的行,因为我要读取的部分的行数并不总是一致的(这种类型的文件是由外部程序生成的,我不能修改其结构)。有什么方法可以让我只读取 csv 代码中位于所需标题下的部分,以便我可以使用它从这些值中选择所需的数据?
提前感谢您的帮助。
【问题讨论】:
-
使用标准 python 库阅读它。查找要拆分的区域和特定的跳行功能。然后,使用
StringIO分别读取每个 CSV。