[英]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.