熊猫用index_col函数不会跳过空行

时间:2017-02-25 22:13:32

标签: python pandas indexing blank-line

我在python中使用pandas时会遇到问题。

我需要使用country列索引我的数据框。但是在csv文件的列行之后有一个空行:

0 Televison, Physicians, and Life Expectancy
1 NaN, NaN, NaN, NaN, NaN, NaN
2 country, life expectancy, people/TV, people/physician, female life expectancy, male life expectancy
3 NaN, NaN, NaN, NaN, NaN, NaN (I need to skip this line)
4 value, value, value, value, value, value, 
5 value, value, value, value, value, value, 
...
...

我试图跳过标题和第一个实际数据行之间的空行,如下所示:

tvdf = pd.read_csv(infile, sep=',', header=2, skiprows=[3], nrows=40, index_col='Country', skip_blank_lines=True)

作为回报,它成功地将country列作为索引。但是,在index_col函数中,skiprows和skip_blank_lines都不起作用。我的解释是:如果我使用country列作为索引,它会将空行(NaN)识别为第一个索引名称。并且skip_blank_lines和skip_blank_lines都不会在index_col函数中生效。我在没有index_col的情况下尝试了它,它将自动跳过没有任何skiprow或skip_blank_lines语句的非值行。

我一直在网上搜索这个问题,但没有发现任何相关问题。 所以在这个阶段,也许我可以操作cvs文件并手动删除空行,或者是否有人有任何经验处理?

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

使用skiprows=[0, 1, 3]

pd.read_clipboard(
    sep=',', skipinitialspace=True, skiprows=[0, 1, 3]
)

enter image description here

答案 1 :(得分:0)

skip_blank_lines=True解决了这个问题。

(无需手动传递空白行的行号)