sábado, 9 de janeiro de 2021

Filtragem de datas em série temporal utilizando o Python Pandas

 Estou trabalhando com um conjunto de dados da estação meteorológica automática de Taubaté, cujos dados foram obtidos em https://tempo.inmet.gov.br/TabelaEstacoes/A728 .

Tabela mostrando os dados originais do INMET


Para leitura dos dados com Python Pandas utilizei:

df = pd.read_csv('./TAUBATE_A728.csv', 
                 sep=';', 
                 skiprows=1, 
                 parse_dates=[[0,1]], dayfirst=True,
                 index_col=0,
                 usecols= [0,1,3,7,14,15,16,18],
                 decimal= ',',
                 dtype={'Temp. Max. (C)': np.float64, 
                        'Umi. Min. (%)': np.float64, 
                        'Vel. Vento (m/s)': np.float64, 
                        'Dir. Vento (m/s)': np.float64, 
                        'Raj. Vento (m/s)': np.float64, 
                        'Chuva (mm)': np.float64}
                )

Note que utilizei vários parâmetros para definir o índice do DataFrame como sendo a união dos campos data e hora que originalmente estão separados. Também fiz a escolha das colunas que me interessavam e defini o tipo do dado a ser manipulado.

Uma primeira forma de filtrar é utilizando o padrão normalmente utilizado em qualquer coluna, porém considerando o índice do DataFrame:

df[df.index.month == 6]

A segunda forma é mais indicada para a situação pois ela considera o índice temporal:

df['2020-06-02']

Eu recomendo visitar o seguinte tutorial