我是Python的新手(通常还有Stack Overflow),我正在try 处理一个CSV文件,它由两个部分组成,每个部分都有不同长度的头行.

第一个部分只有两行:一个标题行有13列,第二行包含数据.

在两个空行之后,第二部分从另一个标题行开始,这次42个条目长,后面是可变数量的数据行.

考虑一下这个(缩短的)例子:

A B C D E F G H
1 File name Date Time ID Type
2 report.csv 27.03.2024 11:15 12345 Thing
3  
4  
5 No. Device Version Readout date Readout time Value 1 Value 2 Value 3
6 1 2345678 10 26.03.2024 10:00 463 470 482
7 2 3456789 11 26.03.2024 11:00 298 340 363
8 3 4567890 12 26.03.2024 12:00 587 600 621
9 ...

我试图实现的是将这两个部分视为两个独立的东西,并 for each 部分创建一个dict,最好不需要创建任何"助手"文件(比如将其拆分为两个独立的CSV文件).到目前为止,我已经try 了许多方法,使用csv.DictReaderpandas.read_csv与一组chunksize或一组行索引作为它的header参数.我已经在谷歌上搜索了一个小时,但我似乎找不到任何人有类似的问题.

推荐答案

您可以使用. iloc函数轻松拆分此CSV 所以首先阅读CSV为rame:

import pandas as pd
my_csv = pd.read_csv('my_csv.csv')

创建2个变量,其中你将定义部分的部分作为新的rabrame,例如:

df1 = my_csv[:3]
df2 = my_csv[5:]

如果列的红色不好,则需要分别分配列名,如:

df1.columns = ['No. Device', 'Version', 'Readout date', 'Readout time', 'Value 1',  'Value 2',  'Value 3']

希望它能帮助

Python相关问答推荐

在函数内部使用eval(),将函数的输入作为字符串的一部分

如何从具有多个嵌入选项卡的网页中Web抓取td类元素

将DF中的名称与另一DF拆分并匹配并返回匹配的公司

比较两个数据帧并并排附加结果(获取性能警告)

仿制药的类型铸造

对某些列的总数进行民意调查,但不单独列出每列

Django mysql图标不适用于小 case

Gekko:Spring-Mass系统的参数识别

. str.替换pandas.series的方法未按预期工作

无法定位元素错误404

在www.example.com中使用`package_data`包含不包含__init__. py的非Python文件

ruamel.yaml dump:如何阻止map标量值被移动到一个新的缩进行?

在matplotlib中使用不同大小的标记顶部添加批注

如何在Python中将超链接添加到PDF中每个页面的顶部?

如果不使用. to_list()[0],我如何从一个pandas DataFrame中获取一个值?

python3中np. divide(x,y)和x/y有什么区别?'

EST格式的Azure数据库笔记本中的当前时间戳

VSCode Pylance假阳性(?)对ImportError的react

使用美汤对维基百科表格进行网络刮擦未返回任何内容

大Pandas 中的群体交叉融合