Python 如何使用pandas将csv中的多行读取到单个数据帧行中

Python 如何使用pandas将csv中的多行读取到单个数据帧行中,python,csv,pandas,Python,Csv,Pandas,我有一个文件,在第一行有一个注释,后面是两行,标题的名称在它们之间滑动,第三行是索引的名称。该文件如下所示: # 3 5 <-- this is a comment indicating how many rows and column are matrix data head1 head2 head3 head4 head5 idx1 idx2 idx3 1.1 1.2 1.3 1.4 1.5 2.1 2.2 2.3 2.4 2.5 3.1 3.2 3.3 3.4 3.5 您可以指

我有一个文件,在第一行有一个注释,后面是两行,标题的名称在它们之间滑动,第三行是索引的名称。该文件如下所示:

# 3 5 <-- this is a comment indicating how many rows and column are matrix data
head1 head2 head3
head4 head5
idx1 idx2 idx3

1.1 1.2 1.3 
1.4 1.5
2.1 2.2 2.3
2.4 2.5
3.1 3.2 3.3
3.4 3.5

您可以指定的
skiprows
关键字,以便创建一个包含所有3值行的数据框(通过跳过2值行),然后创建另一个包含所有2值行的数据框。请注意,您可以使用
标题
关键字指定标题行

因此,您可以将csv文件解析为两个不同的数据帧,稍后再进行分析

例如(假设三值线为偶数线号,二值线为奇数线号):

然后,您可以使用将两个数据帧连接为一个数据帧:

df = pd.concat((df3, df2))

这是一个非常定制的要求。我建议您阅读python中的csv。根据需要进行解析。从读取的值创建数据帧。感谢您的回复。除去文本文件结构,是否有任何选项可以使用pandas将两行读入一行?在否定的情况下,我会完全自己解析它,然后创建一个数据帧。谢谢你的回复。这个主意太棒了!我用
concat
将最后一行更改为
df=pd。concat([df2,df3],axis=1)
也不需要“filter”。这同样有效,因为pandas将索引输入lambda函数:
skiprows=lambda x:x%2==1
df3 = pd.read_csv(..., skiprows=lambda x: x%2 == 1)
df2 = pd.read_csv(..., skiprows=lambda x: x%2 == 0)
df = pd.concat((df3, df2))