在pandas中从csv阅读时跳过行

ig9co6j1  于 2023-07-31  发布在  其他
关注(0)|答案(2)|浏览(117)

我有一个很大的csv文件,其中包含气象局的天气观测。当阅读这个文件时,我需要跳过开始的一些行。
文件如下所示:

"Daily Weather Observations..."
"Prepared..."

,"Date","Minimum temperature (�C)", ...
# data here

字符串
当从文件中阅读时,我想跳过开始处不是数据的行。但是,这些行的数量因文件而异。(我有很多文件)。
我目前的做法是:

import pandas as pd
actuals = pd.read_csv(path_here, skiprows=5, encoding='latin1')


然而,这只在我硬编码行时才起作用,我需要它能够动态地跳过行。
当从csv文件中阅读时,我如何跳过这些“注解”行?

dfddblmv

dfddblmv1#

您可以向read_csv函数传递一个打开的文件对象。因此,您可以打开文件,读取行,直到找到所需的内容,然后将剩余部分传递给 Dataframe 。您需要手动传入列名,或者解析最后一个line中的列名。

import pandas as pd

with open('weather.csv') as fp:
    for line in fp:
        if line.startswith(',"Date"'):
            break
    df = pd.read_csv(fp, header=None, names=['Date', 'MinTemp', ...])

字符串

aurhwmvo

aurhwmvo2#

如果在读取行中的第一个字符时是数据,则可以让read_csv函数使用#从行的开头读取数据。

相关问题