Filtro pandas por data

Filtro pandas por data
O formato das datas varia em diferentes regiões (dd/mm/yy, aaaaa-dd, sim-dd-mm, etc.). Trabalhar com valores de string de data no conjunto de dados é desafiador. A hora e a data no formato da string podem ser convertidas em DateTime64 usando o método Pandas 'to_dateTime (). Esse tipo de dados nos permite a extração das características de tempo e data que variam de "microssegundos" a "ano". Primeiro, converta os valores da data no quadro de dados fornecido no tipo DateTime64 antes de filtrar as linhas com base nas datas. Em seguida, defina uma condição de filtro usando o quadro de dados do pacote de pandas.loc e dataframe.Funções de consulta. Obtenha o quadro de dados filtrado, que é o subconjunto de dados.

Como extrair valores do quadro de dados do pandas com base nos valores de data

Nos exemplos a seguir, usaremos os diferentes métodos para filtrar as colunas do quadro de dados por valores de data. Antes de filtrar os dados, as datas devem ser convertidas no tipo de dados “'DateTime64”.

Exemplo 1: Extrair dados usando o DataFrame.LOC [] função com base nos valores da data

Usando os nomes das colunas ou uma matriz booleana, a função loc [] pode ser usada para recuperar um grupo de colunas e linhas em um quadro de dados. Uma matriz (booleana) com um valor verdadeiro se a linha atender ao requisito e um valor falso em todos os outros casos for retornado pela expressão condicional no método LOC []. A função loc [] retorna apenas as linhas com valores verdadeiros. Para criar nosso quadro de dados, usamos o PD.Função DataFrame (). A biblioteca de pandas deve ser importada primeiro.


Passamos um dicionário de Python dentro do PD.Função DataFrame () para criar nosso DataFrame "DF". Vamos imprimi -lo para visualizar seu conteúdo.


Existem duas colunas no quadro de dados anteriores "nome" e "posting_date". A coluna "nome" é consiste em nomes de funcionários de alguma empresa ("Leo", "Bruce", "Robert", "Clay", "Martin", "Henry", "Lana", "Becky", "Alexa" , "Dustin"). A coluna "posting_date" contém o registro da data de publicação de cada funcionário ("2022-08-01", "2022-08-20", "2022-09-05", "2022-09-25", "2022 -09-30 "," 2022-10-10 "," 2022-11-10 "," 2022-12-01 "," 2022-12-10 "," 2022-12-30 "). Vamos verificar os tipos de dados de colunas no quadro de dados "df" usando o atributo dtypes.


Pode -se oberver que o tipo de dados atual de colunas "posting_date" seja "objeto". Para filtrar os dados com base nos valores da data, convertemos em "DateTime64".


Para converter o tipo de dados em DATETime64, usamos o PD.Função DATETime () e passou a coluna "posting_date" como um argumento dentro da função. O formato é especificado. Agora, o tipo de dados da coluna com valores de data é alterado para "Timedate64". Novamente, você pode usar o atributo dtypes para determinar o tipo de dados de colunas.


O tipo de dados do posting_date é alterado de objeto para DateTime64. Como o tipo de dados é alterado agora, podemos usar nossa função loc [] com condições dentro dele para filtrar as linhas.


Aplicamos duas condições dentro da função LOC [] para extrair as linhas do quadro de dados em que a data no "posting_date" é igual ou maior que "22-09-05" e o valor de "posting_date" é menor que 22- 12-01.


As linhas anteriores do DataFrame atendem às condições dentro da função loc [].

Exemplo 2: Extrair os dados usando o DateTimeIndex (DT) no DataFrame.LOC [] função

Várias propriedades podem ser devolvidas usando DT para obter os valores da série como valores de DateTimelike. Por exemplo, a “série.dt.Data ”Atributo retorna um Python DateTime Numpy Array. Vamos criar outro quadro de dados para este exemplo.


O DataFrame é criado usando o lado do dicionário do PD.Função DataFrame ().


A coluna "Data" em nosso quadro de dados é consistente em valores de data como strings ("2021-06-09", "2021-06-25", "2021-07-05", "2021-07-12", "2021 -08-29 "," 2021-09-15 "," 2021-10-21 "," 2021-11-02 "," 2021-11-10 "," 2021-11-18 "). Agora verificamos o tipo de dados do DataFrame com a ajuda do atributo dtypes.


O tipo de dados das colunas “Task” e “Date” são INT64 e Objeto, respectivamente. Mudamos a coluna "Date" para "DateTime64" Datatype. Para alterar seu tipo de dados, usamos a função to_dateTime ().


Agora, podemos filtrar os dados usando o método loc []. Primeiro, filtramos os dados sem usar o atributo dt para filtrar os dados para datas específicas.


O script anterior recupera as linhas com as datas entre novembro, uma vez que a condição é especificada como a data deve ser igual ou superior a 2021-11-01 e menos de 2021-11-30.


Também podemos recuperar as linhas com datas ou horários específicos usando o atributo dt. Suponhamos que recuperemos a linha para um dia de semana específico. A indexação dos dias da semana começa de 1 a 7, onde 1 é segunda e 7 é domingo. Se especificarmos segunda -feira, usamos o valor do índice 1.

Exemplo 3: extrair os dados usando .Função de consulta [] com base nos valores da data

O método query () também pode ser usado para filtrar os dados com base nos valores de data do DataFrame. Você pode consultar o DataFrame usando o método consulsão (). Uma expressão de consulta é passada como uma entrada de string para o método query () e deve retornar verdadeiro ou falso. O DataFrame é retornado quando a saída é verdadeira pela declaração de consulta. Vamos criar um quadro de dados onde usamos a função query () para filtrar os dados.


Agora, vamos alterar o tipo de dados da coluna "chegada" para DATETime64 usando a função to_dateTime ().


Usando o atributo dTypes, vamos verificar se o tipo de dados da coluna "chegada" é alterado para DateTime64 ou não.


À medida que o tipo de dados é alterado, usamos a função query () para filtrar os dados do quadro de dados "df".


Você pode observar que a condição dentro da função consulsão () é passada como uma string, i.e. “Chegada> = '2022-02-05' e chegada < '2022-05-15'”. The function returns the rows where the date values in the “arrival” column are equal to or greater than 2022-02-05 and less than 2022-05-15.


As linhas anteriores da estrutura de dados "df" satisfazem a condição dentro da função query ().

Exemplo 4: filtre as linhas entre duas datas usando a função isin ()

O método isin () ajuda a recuperar as linhas com um único (ou múltiplo) valor em uma coluna específica. Os “pandas.Quadro de dados.O método isin () ”retorna um quadro de dados de booleanos que indica se um elemento está ou não incluído no intervalo dado. Esta técnica nos permite filtrar as linhas de dados de dados em pandas de acordo com a data. Agora criamos uma nova amostra de quadro de dados para demonstrar o uso da função isin () para filtrar as linhas após importar os módulos pandas e numpy.


Enquanto criamos nosso quadro de dados, agora alteramos o tipo de dados da coluna "Data" para DateTime64, como fizemos nos exemplos anteriores.


Depois de alterar o tipo de dados para o DateTime 64, filtramos as linhas usando as linhas do quadro de dados "df" usando a função isin ().


Passamos pelo PD.função date_range () juntamente com a função isin (). Especificamos o parâmetro inicial do date_range () como 2021-12-01 e o parâmetro final como 2022-02-01. O código anterior retorna as linhas do quadro de dados que estão dentro do intervalo.

Conclusão

Neste tutorial, tentamos ensiná -lo a filtrar as linhas por valores de data. Aprendemos que convertemos os valores da data no quadro de dados fornecido para o tipo DateTime64 antes de filtrar as linhas com base nas datas. Implementamos alguns exemplos neste artigo para ensinar como você pode usar o DataFrame.LOC [] função, .Função de consulta [] e ISIN () para filtrar os dados por datas em pandas. Agora, depois de passar por este tutorial, você poderá filtrar as linhas sozinho.