从特定行读取 CSV

Reading a CSV from a particular line

我正在编写一个处理气象站数据的程序,这是我从我的气象站获得的 CSV:

问题是 pandas 无法打开它。首先,我收到一条错误消息,我设法通过以下方式绕过:

test = pd.read_csv("PAYA(3).csv",error_bad_lines=False,skiprows = [0,7])

现在另一个问题是 pandas 文件只显示前 4 行:

可在以下位置下载 CSV:https://mesowest.utah.edu/cgi-bin/droman/download_api2_handler.cgi?output=csv&product=&stn=PAYA&unit=0&daycalendar=1&hours=1&day1=05&month1=01&year1=2020&time=LOCAL&hour1=0&var_0=air_temp&var_8=precip_accum_one_hour

我怎样才能正确读取文件?我想要的是将它分成 4 列,以包含日期、小时、降水量和温度。我的最终目标是自动下载给定日期的数据-window,并将变量堆叠到一个巨大的数组中。

当向 pandas.read_csvskiprows 参数传递一个列表时,根据文档,您要求它恰好跳过该列表中的行,而不是一系列行。

如果您想跳过前 8 行,只需传递 skiprows=8

更新:我发现以下最适合此数据集:

>>> pd.read_csv(url, header=6, skiprows=[7])

这使用行 6 作为列名,跳过给出一些单位的行 7。使用 header=6 隐式跳到行 7 作为数据的开始。

结果:

    Station_ID              Date_Time  air_temp_set_1  precip_accum_one_hour_set_1
0         PAYA  01/03/2020 22:00 AKST           24.80                          NaN
1         PAYA  01/03/2020 22:05 AKST           24.80                          NaN
2         PAYA  01/03/2020 22:10 AKST           24.80                          NaN
3         PAYA  01/03/2020 22:15 AKST           24.80                          NaN
4         PAYA  01/03/2020 22:20 AKST           24.80                          NaN
..         ...                    ...             ...                          ...
287       PAYA  01/04/2020 21:45 AKST            8.60                          NaN
288       PAYA  01/04/2020 21:50 AKST            8.60                          NaN
289       PAYA  01/04/2020 21:53 AKST           10.04                          NaN
290       PAYA  01/04/2020 21:55 AKST            8.60                          NaN
291       PAYA  01/04/2020 22:00 AKST            8.60                          NaN

您可能希望将参数 skiprows 更改为:

test = pd.read_csv("PAYA.csv", skiprows=range(0,7), sep=',', error_bad_lines=False)