如何跳过pandas.read_csv上标题前未知数量的空行?

2024-09-25 02:28:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从csv文件中读取一个数据帧,其中的头不在第一行。例如:

In [1]: import pandas as pd

In [2]: import io

In [3]: temp=u"""#Comment 1
   ...: #Comment 2
   ...: 
   ...: #The previous line is empty
   ...: Header1|Header2|Header3
   ...: 1|2|3
   ...: 4|5|6
   ...: 7|8|9"""

In [4]: df = pd.read_csv(io.StringIO(temp), sep="|", comment="#", 
   ...:                  skiprows=4).dropna()

In [5]: df
Out[5]: 
   Header1  Header2  Header3
0        1        2        3
1        4        5        6
2        7        8        9

[3 rows x 3 columns]

上面的代码的问题是,我现在没有在头之前存在多少行,因此,我不能像这里那样使用skiprows=4

我知道我可以遍历文件,就像问题Read pandas dataframe from csv beginning with non-fix header中那样。

我要找的是一个更简单的解决方案,比如让pandas.read_csv忽略任何空行,并将第一个非空行作为头。


Tags: 文件csvinioimportpandasdfread