[英]Dose pd.read_csv skiprows parameter support skip empty lines?
我有一个 csv 文件,如下所示:
SUMMARY OF SURFACE ENERGY BALANCE
INCOMING NET SOLAR RADIATION BY MATERIAL NET LONG-WAVE RADIATION BY MATERIAL
SOLAR REFLECTED ------------------------------------------ INCOMING OUTGOING -----------------------------------------
DAY HR YR ON SLOPE SOLAR CANOPY SNOW RESIDUE SOIL TOTAL LONGWAVE LONGWAVE CANOPY SNOW RESIDUE SOIL TOTAL SENSIBLE LATENT SOIL
W/M2 W/M2 W/M2 W/M2 W/M2 W/M2 W/M2 W/M2 W/M2 W/M2 W/M2 W/M2 W/M2 W/M2 W/M2 W/M2 W/M2
338 24 86 30.8 5.6 19.4 0.0 5.4 0.5 25.3 290.6 317.5 -16.4 0.0 -6.3 -4.1 -26.9 -4.7 -0.8 -6.8
339 24 86 11.6 5.6 4.8 1.2 0.0 0.0 6.0 301.5 311.4 -5.2 -3.5 -0.4 -0.7 -9.9 1.3 -0.1 -7.1
...
文件的第 1 行、第 3 行、第 4 行、第 10 行、第 11 行和第 12 行为空。
第 7 行是 header。
第 13 行之后的行是数据。
我想把它读成 dataframe 并做一些分析。
为此,我必须:
如果我使用此代码可以获得正确的结果:
import pandas as pd
df = pd.read_csv(path, header=3, skiprows=[7])
print(df.head())
这将像这样打印:
DAY HR YR ON SLOPE SOLAR CANOPY SNOW RESIDUE SOIL TOTAL LONGWAVE LONGWAVE CANOPY SNOW RESIDUE SOIL TOTAL SENSIBLE LATENT SOIL
0 338 24 86 30.8 5.6 19.4 0...
1 339 24 86 11.6 5.6 4.8 1...
2 340 24 86 22.2 18.5 0.0 3...
3 341 24 86 22.8 18.7 0.0 4...
4 342 24 86 48.4 37.0 4.4 7...
但是,当我调用 read_csv function 时,将 header 参数设置为 3,并将 skiprows 参数设置为 7,我得到了这个结果(即使我需要在 Z099FB995346F33E95EZ6 行之后应用 skiprow)。
header 已经忽略了 header 之前的空行,但是skirows 不能忽略之前的空行。
结论
所以我想知道 skiprows 参数可以忽略空行吗?
如果可能的话,我只需要知道 header 行号之后的跳过数,而忽略从顶部开始计算的需要。
我快速查看了文档,似乎没有,原因是当参数skip_blank_lines
设置为True
(默认情况下)时, header
会忽略行,但skiprows
不考虑该参数。
但是,您可以在不使用skiprows
参数的情况下读取并删除na
值。
df = pd.read_csv(path, header=3, skip_blank_lines=True).dropna()
但老实说,这可能不是一个好主意,因为 dtypes 将设置为具有na
值的受影响列的objects
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.