quinta-feira, 22 de abril de 2021

Python - Altere os nomes das colunas e os índices das linhas no DataFrame pandas

Dado um DataFrame pandas, vamos ver como alterar seus nomes de coluna e índices de linha.

Sobre o DataFrame pandas

Os DataFrame pandas são grades retangulares usadas para armazenar dados. É fácil visualizar e trabalhar com dados quando armazenados em dataFrame.

  • Consiste em linhas e colunas.
  • Cada linha é uma medida de alguma instância, enquanto a coluna é um vetor que contém dados para algum atributo/variável específico.
  • Cada coluna de dataframe tem dados homogêneos em qualquer coluna específica, mas as linhas de dataframe podem conter dados homogêneos ou heterogêneos em qualquer linha específica.
  • Ao contrário da matriz bidimensional, os eixos do dataframe do pandas são rotulados.

O tipo Dataframe do Pandas tem dois atributos chamados "columns" e "index" que podem ser usados para alterar os nomes das colunas, bem como os índices das linhas.

Crie um DataFrame usando um dicionário.

import pandas as pd

df = pd.DataFrame({
    "Nome": ['Tom', 'Nick', 'John', 'Peter'],
    "Idade": [15, 26, 17, 28]
})

print(df)

Saída:

    Nome  Idade
0    Tom     15
1   Nick     26
2   John     17
3  Peter     28

Método #1: Alterar o nome da coluna e o índice da linha usando os atributo df.columns e df.index respectivamente.

Para alterar os nomes das colunas, fornecemos uma lista python contendo os nomes das colunasparra o atributo df.columns. Exemplo: df.columns = ['First_col', 'Second_col', 'Third_col', .....].

Para alterar os índices de linha, também fornecemos uma lista python para o atributo df.index. Exemplo: df.index = ['row1', 'row2', 'row3', ......]

import pandas as pd

df = pd.DataFrame({
    "Nome": ['Tom', 'Nick', 'John', 'Peter'],
    "Idade": [15, 26, 17, 28]
})

# Muda o nome das colunas
df.columns = ['Coluna_1', 'Coluna_2']

# Muda o nome dos index
df.index = ['Lina_1', 'Linha_2', 'Linha_3', 'Linha_4']

print(df)

Saída:

        Coluna_1  Coluna_2
Lina_1       Tom        15
Linha_2     Nick        26
Linha_3     John        17
Linha_4    Peter        28

Método #2: Usando a função rename() com dicionário para alterar uma única coluna

import pandas as pd

df = pd.DataFrame({
    "Nome": ['Tom', 'Nick', 'John', 'Peter'],
    "Idade": [15, 26, 17, 28]
})

# Alterar o nome da coluna 'Nome' para 'Coluna_1'
df = df.rename(columns={"Nome":"Coluna_1"})

print(df)

Saída:

  Coluna_1  Idade
0      Tom     15
1     Nick     26
2     John     17
3    Peter     28

Alterar vários nomes de coluna simultaneamente:

import pandas as pd

df = pd.DataFrame({
    "Nome": ['Tom', 'Nick', 'John', 'Peter'],
    "Idade": [15, 26, 17, 28]
})

# Alterar o nome da coluna 'Nome' para 'Coluna_1'
# e alterando o nome da coluna 'Idade' para 'Coluna_2'
df = df.rename({"Nome":"Coluna_1","Idade":"Coluna_2"}, axis='columns')

print(df)

Saída:

  Coluna_1  Coluna_2
0      Tom        15
1     Nick        26
2     John        17
3    Peter        28

Método #3: Usando a função Lambda para renomear as colunas.

Uma função lambda é uma pequena função anônima que pode receber qualquer número de argumentos, mas pode ter apenas uma expressão. Usando a função lambda, podemos modificar todos os nomes das colunas de uma vez. Vamos adicionar 'x' no final de cada nome de coluna usando a função lambda

import pandas as pd

df = pd.DataFrame({
    "Nome": ['Tom', 'Nick', 'John', 'Peter'],
    "Idade": [15, 26, 17, 28]
})

# Renomeando colunas usando uma função lambda
# Adiciona '_x' ao final do nome de cada coluna
df = df.rename(columns=lambda x: x+'_x')

print(df)

Saída:

   Nome_x  Idade_x
0    Tom      15
1   Nick      26
2   John      17
3  Peter      28

Método #4: Usando o atributo values para renomear as colunas.

Podemos usar o atributo values diretamente na coluna cujo nome queremos alterar.

import pandas as pd

df = pd.DataFrame({
    "Nome": ['Tom', 'Nick', 'John', 'Peter'],
    "Idade": [15, 26, 17, 28]
})

df.columns.values[1] = 'Estudantes_Idade'

print(df)

Saída:

    Nome  Estudantes_Idade
0    Tom                15
1   Nick                26
2   John                17
3  Peter                28

Vamos mudar o índice da linha usando a função Lambda.

import pandas as pd

df = pd.DataFrame({
    "A": ['Tom', 'Nick', 'John', 'Peter'],
    "B": [25, 16, 27, 18]
})

# isto aumentará o valor do índice da linha em 10 para cada linha
df = df.rename(index=lambda x: x + 10)

print(df)

Saída:

        A   B
10    Tom  25
11   Nick  16
12   John  27
13  Peter  18

Agora, se quisermos alterar os índices de linha e nomes de coluna simultaneamente, isso pode ser feito usando a função rename() e passando o atributo de coluna e índice como o parâmetro.

import pandas as pd

df = pd.DataFrame({
    "A": ['Tom', 'Nick', 'John', 'Peter'],
    "B": [25, 16, 27, 18]
})

df = df.rename(index=lambda x: x + 5, columns=lambda x: x + 'x')

print(df)

Saída:

import pandas as pd

df = pd.DataFrame({
    "A": ['Tom', 'Nick', 'John', 'Peter'],
    "B": [25, 16, 27, 18]
})

df = df.rename(index=lambda x: x + 5, columns=lambda x: x + 'x')

print(df)

Artigo escrito por Shubham__Ranjan e traduzido por Acervolima de Python | Change column names and row indexes in Pandas DataFrame.

Licença

Diferentes maneiras de criar um DataFrame pandas

DataFrame pandas é uma estrutura de dados rotulada bidimensional com colunas de tipos potencialmente diferentes. Geralmente é o objeto pandas mais comumente usado.

O DataFrame pandas pode ser criado de várias maneiras. Vamos discutir diferentes maneiras de criar um DataFrame, uma por uma.

Método #1: Criando Pandas DataFrame a partir de listas de listas.

# importando a biblioteca pandas
import pandas as pd

# inicializando uma lista com listas
data = [['tom', 10], ['nick', 15], ['juli', 14]]

# Criando um dataframe do pandas
df = pd.DataFrame(data, columns=['Nome', 'Idade'])

# mostrando o dataframe
print(df)

Saída:

   Nome  Idade
0   tom     10
1  nick     15
2  juli     14

Método #2: Criando DataFrame de um dicionário de narray/listas

Para criar DataFrame a partir de um dicionário de narray/listas, todos os narray devem ter o mesmo comprimento. Se o índice for passado, o índice de comprimento deve ser igual ao comprimento das matrizes. Se nenhum índice for passado, então, por padrão, o índice será o intervalo (n), onde n é o comprimento do array.

# importando a biblioteca pandas
import pandas as pd

dicionário = {
    'Nome': ['Tom', 'nick', 'krish', 'jack'],
    'Idade': [20, 21, 19, 18]
}

# Criando um dataframe a partir de um dicionário do python
df = pd.DataFrame(dicionário)

# mostrando o dataframe
print(df)

Saída:

    Nome  Idade
0    Tom     20
1   nick     21
2  krish     19
3   jack     18

Método #3: Cria um DataFrame de índices usando matrizes.

# importando a biblioteca pandas
import pandas as pd

# Inicializando um dicionário com arrays
data = {
    'Name': ['Tom', 'Jack', 'nick', 'juli'],
    'marks': [99, 98, 95, 90]
}

# criando um dataframe com index
df = pd.DataFrame(data, index=['rank1','rank2', 'rank3', 'rank4'])

# mostrando o dataframe
print(df)

Saída:

       Name  marks
rank1   Tom     99
rank2  Jack     98
rank3  nick     95
rank4  juli     90

Método #4: Criando Dataframe a partir de uma lista de dicionários

O DataFrame pandas pode ser criado passando listas de dicionários como dados de entrada. Por padrão, as chaves do dicionário são consideradas colunas.

# importando a biblioteca pandas
import pandas as pd

# inicializando uma lista com dicionários
data = [
    {'a': 1, 'b': 2, 'c':3},
    {'a':10, 'b': 20, 'c': 30}
]

# criando um dataframe
df = pd.DataFrame(data)

# mostrando o dataframe
print(df)

Saída:

    a   b   c
0   1   2   3
1  10  20  30

Outro exemplo para criar o DataFrame do pandas passando listas de dicionários e índices de linha.

# importando a biblioteca pandas
import pandas as pd

# inicializando uma lista com dicionários
data = [
    {'b': 2, 'c':3},
    {'a':10, 'b': 20, 'c': 30}
]

# criando um dataframe com index
df = pd.DataFrame(data, index=['primeiro', 'segundo'])

# mostrando o dataframe
print(df)

Saída:

           b   c     a
primeiro   2   3   NaN
segundo   20  30  10.0

Outro exemplo para criar o DataFrame do pandas a partir de listas de dicionários com índice de linha e índice de coluna.

import pandas as pd

data = [
    {'a': 1, 'b': 2},
    {'a': 5, 'b': 10, 'c': 20}
]
   
# Com dois índices de coluna, valores iguais às chaves de dicionário
df1 = pd.DataFrame(
    data,
    index=['first', 'second'],
    columns=['a', 'b']
)
   
# Com dois índices de coluna com um índice com outro nome
df2 = pd.DataFrame(
    data,
    index=['first', 'second'],
    columns=['a', 'b1']
)

# Mostra o primeiro dataframe
print (df1, "\n")

# Mostra o segundo dataframe
print (df2)

Saída:

        a   b
first   1   2
second  5  10 

        a  b1
first   1 NaN
second  5 NaN

Método #5: Criando DataFrame usando a função zip().

Duas listas podem ser mescladas usando a função list(zip()). Agora, crie o DataFrame do pandas chamando a função pd.DataFrame().

import pandas as pd 

Nome = ['tom', 'krish', 'nick', 'juli'] 

Idade = [25, 30, 26, 22] 

# obtenha a lista de tuplas de duas listas e mescle-as usando zip().
lista_de_tuplas = list(zip(Nome, Idade))  

# Convertendo listas de tuplas em Dataframe do pandas.
df = pd.DataFrame(
    lista_de_tuplas,
    columns=['Nome', 'Idade']
)

print(df)

Saída:

    Nome  Idade
0    tom     25
1  krish     30
2   nick     26
3   juli     22

Método #6: Criando DataFrame a partir de um cicionário de série.

Para criar DataFrame a partir de dicionários de série, o dicionário pode ser passado para formar um DataFrame. O índice resultante é a união de todas as séries de index passadas.

import pandas as pd 

d = {
    'one': pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd']),
    'two' : pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])
}

# Criando dataframe
df = pd.DataFrame(d)

print(df)

Saída:

   one  two
a   10   10
b   20   20
c   30   30
d   40   40

Artigo escrito por Samdare B e traduzido por Acervolima de Different ways to create Pandas Dataframe.

Licença

Crie DataFrames do pandas a partir de listas usando a função zip do python

Uma das maneiras de criar DataFrame do pandas é usando a função zip().

Você pode usar as listas para criar listas de tuplas e criar um dicionário a partir delas. Então, este dicionário pode ser usado para construir um dataframe.

A função zip() cria os objetos e pode ser usada para produzir um único item por vez. Esta função pode criar DataFrames pandas mesclando duas listas.

Suponha que haja duas listas de dados de alunos, a primeira lista contém o nome do aluno e a segunda lista a idade do aluno. Então podemos ter,

Nome = ['tom', 'krish', 'nick', 'juli']

Idade = [25, 30, 26, 22]

As duas listas acima podem ser mescladas usando a função list(zip()). Agora, crie o DataFrame do pandas chamando a função pandas.DataFrame().

import pandas as pd

Nome = ['tom', 'krish', 'nick', 'juli']

Idade = [25, 30, 26, 22]

# obtenha a lista de tuplas de duas listas
# e mescle-as usando zip().
lista_de_tuplas = list(zip(Nome, Idade))

print(lista_de_tuplas)

Saída:

[('tom', 25), ('krish', 30), ('nick', 26), ('juli', 22)]
import pandas as pd

Nome = ['tom', 'krish', 'nick', 'juli']

Idade = [25, 30, 26, 22]

# obtenha a lista de tuplas de duas listas
# e mescle-as usando zip().
lista_de_tuplas = list(zip(Nome, Idade))

# converte uma lista de tuplas num DataFrame
df = pd.DataFrame(lista_de_tuplas, columns=['Nome', 'Idade'])

print(df)

Saída:

    Nome  Idade
0    tom     25
1  krish     30
2   nick     26
3   juli     22

Artigo escrito por Samdare B e traduzido por Acervolima de Create pandas dataframe from lists using zip.

Licença

Python - Series.cumsum() para encontrar a soma cumulativa de uma série do pandas

O método Series.cumsum() do pandas é usado para encontrar a soma cumulativa de uma série. Na soma cumulativa, o comprimento da série retornada é igual à entrada e cada elemento é igual à soma de todos os elementos anteriores.

Sintaxe: Series.cumsum(axis=None, skipna=True)

Parâmetros:

  • axis: 0 ou 'índice' para operação em linha e 1 ou 'colunas' para operação em coluna.
  • skipna: Ignora a adição de NaN para elementos após o próximo se True.

Tipo de retorno: Series

Exemplo #1: Neste exemplo, uma série é criada a partir de uma lista python usando o método pandas.Series(). A lista também contém um valor Nulo e o parâmetro skipna é mantido como padrão, ou seja, True.

# importando o módulo pandas
import pandas as pd

# importando o módulo numpy
import numpy as np

# criando uma lista de valores
values = [3, 4, np.nan, 7, 2, 0]

# Criando uma Series a partir de uma lista
series = pd.Series(values)

# chamando o método cumsum
cumsum = series.cumsum()

# imprimindo o resultado da chamada da função cumsum
print(cumsum)

Saída:

0     3.0     
1     7.0     
2     NaN     
3    14.0     
4    16.0     
5    16.0     
dtype: float64

Explicação: A soma cumulativa é a soma dos valores atuais e de todos os valores anteriores. Conforme mostrado na saída acima, a adição foi feita da seguinte forma:

3
3+4 = 7
7+NaN = NaN
7+7 = 14
14+2 = 16
16+0 = 16

Exemplo #2: skipna=False. Neste exemplo, uma série é criada como no exemplo acima. Mas o parâmetro skipna é mantido como False. Portanto, os valores NULL não serão ignorados e serão adicionados todas as vezes após sua ocorrência.

# importando o módulo pandas
import pandas as pd

# importando o módulo numpy
import numpy as np

# criando uma lista de valores
values = [3, 4, np.nan, 7, 2, 0]

# Criando uma Series a partir de uma lista
series = pd.Series(values)

# chamando o método cumsum
cumsum = series.cumsum(skipna=False)

# imprimindo o resultado da chamada da função cumsum
print(cumsum)

Saída:

0    3.0
1    7.0
2    NaN
3    NaN
4    NaN
5    NaN
dtype: float64

Explicação: Como pode ser visto na saída, todos os valores após a primeira ocorrência de NaN também são NaN, pois qualquer número + NaN também é NaN.

Artigo escrito por Kartikaybhutani e traduzido por Acervolima de Python | Pandas Series.cumsum() to find cumulative sum of a Series.

Licença

Python - Utilizando o método Series.cov() para encontrar a covariância

O método Series.cov() do pandas é usado para encontrar a covariância de duas séries. No exemplo a seguir, a covariância é encontrada usando o método do pandas e manualmente e as respostas são comparadas.

Sintaxe: Series.cov(other, min_periods=None)

Parâmetros:

  • other: Outra série a ser usada para encontrar covariância.
  • min_periods: Número mínimo de observações a serem feitas para obter um resultado válido.

Tipo de retorno: Valor flutuante, retorna a covariância da série do autor da chamada e da série passada.

Exemplo: Neste exemplo, duas listas são feitas e convertidas em série usando o método pandas.Series(). A média se ambas as séries forem encontradas e uma função for criada para encontrar Covarience manualmente. pandas.cov() também é aplicado e os resultados de ambas as formas são armazenados em variáveis e impressos para comparar as saídas.

import pandas as pd

a = [2, 3, 2.7, 3.2, 4.1]

b = [10, 14, 12, 15, 20]

# armazenando média de a
av_a = sum(a)/len(a)

# armazenando média de b
av_b = sum(b)/len(b)

# fazendo série da lista a
a = pd.Series(a)

# fazendo série da lista b
b = pd.Series(b)

# covariância através do método do pandas
covar = a.cov(b)

# encontrar covariância manualmente
def covarfn(a, b, av_a, av_b):
    cov = 0

    for i in range(0, len(a)):
        cov += (a[i] - av_a) * (b[i] - av_b)
    return (cov / (len(a)-1))

# chamando função
cov = covarfn(a, b, av_a, av_b)

# imprimindo resultado
print("Resultados do método do pandas: ", covar)
print("Resultados do método de função manual: ", cov)

Como pode ser visto na saída, a saída de ambas as formas é a mesma. Portanto, este método é útil para encontrar a covariância para grandes séries.

Saída:

Resultados do método do pandas:  2.8499999999999996
Resultados do método de função manual:  2.8499999999999996

Artigo escrito por Kartikaybhutani e traduzido por Acervolima de Python | Pandas Series.cov() to find Covariance.

Licença

terça-feira, 20 de abril de 2021

Python - Utilizando o método astype() para converter o tipo de dados de uma Series pandas

O método astype() do pandas é um dos métodos mais importantes. É usado para alterar o tipo de dados de uma série. Quando o DataFrame é feito de um arquivo csv, as colunas são importadas e o tipo de dados é definido automaticamente, o que muitas vezes não é o que deveria. Por exemplo, uma coluna de salário pode ser importada como string, mas para fazer as operações temos que convertê-la em float.

astype() é usado para fazer tais conversões de tipo de dados.

Sintaxe: DataFrame.astype(dtype, copy=True, errors=’raise’)

Parâmetros:

  • dtype: Tipo de dados para o qual converter a série. (por exemplo str, float, int)
  • copy: Faz uma cópia do dataframe/série.
  • errors: Erro ao aumentar a conversão para tipo de dados inválido. Por exemplo, dict to string. 'raise' aumentará o erro e 'ignore' passará sem aumentar o erro.

Tipo de retorno: Series com os tipos de dados alterados.

Para baixar o conjunto de dados usado no exemplo a seguir, clique aqui.

Nos exemplos a seguir, o DataFrame usado contém dados de alguns jogadores da NBA. A imagem do DataFrame antes de qualquer operação é anexada abaixo.

Exemplo: Neste exemplo, o DataFrame é importado e .dtypes é chamado no DataFrame para visualizar os tipos de dados das séries. Depois disso, algumas colunas são convertidas usando o método .astype() e os dtypes são exibidos novamente para ver as mudanças.

# importa o modulo pandas
import pandas as pd

# Criar um DataFrame a partir de um arquivo csv
data = pd.read_csv("https://media.geeksforgeeks.org/wp-content/uploads/nba.csv")

# Descarta valores null para evitar erros
data.dropna(inplace = True)

# Guardando dtype antes de converter
before = data.dtypes

# Convertendo dtype para inteiro
data["Salary"] = data["Salary"].astype(int)
# Convertendo dtype para string
data["Number"] = data["Number"].astype(str)

# Guardando dtype depois de converter
after = data.dtypes

# imprimindo o antes e depois da converção
print("Depois da converção\n", before, "\n")
print("Antes da converção\n", after, "\n")

Conforme mostrado na saída abaixo, os tipos de dados das colunas foram convertidos de acordo.

Depois da converção
 Name         object
Team         object
Number      float64
Position     object
Age         float64
Height       object
Weight      float64
College      object
Salary      float64
dtype: object 

Antes da converção
 Name         object
Team         object
Number       object
Position     object
Age         float64
Height       object
Weight      float64
College      object
Salary        int64
dtype: object

Artigo escrito por Kartikaybhutani e traduzido por Acervolima de Python | Pandas Series.astype() to convert Data type of series.

Licença

Python - Trabalhando com data e hora usando pandas

Ao trabalhar com dados, encontrar dados de séries temporais é muito comum. O pandas é uma ferramenta muito útil para trabalhar com dados de séries temporais.

O pandas fornece um conjunto diferente de ferramentas com as quais podemos realizar todas as tarefas necessárias com dados de data e hora. Vamos tentar entender com os exemplos discutidos abaixo.

Código #1: crie um dataframe de datas

import pandas as pd

# Cria um DatetimeIndex com 10 linhas
# 3 cada linha tem um incremento de uma hora
# com relação a linha anterior 
data = pd.date_range('1/1/2011', periods=10, freq='H')

print(data)

Saída:

DatetimeIndex(['2011-01-01 00:00:00', '2011-01-01 01:00:00', 
               '2011-01-01 02:00:00', '2011-01-01 03:00:00', 
               '2011-01-01 04:00:00', '2011-01-01 05:00:00', 
               '2011-01-01 06:00:00', '2011-01-01 07:00:00', 
               '2011-01-01 08:00:00', '2011-01-01 09:00:00'],
              dtype='datetime64[ns]', freq='H')

Código #2: Cria um intervalo de datas e mostra os recursos básicos

import pandas as pd

# Obtem a data atual
x = pd.Timestamp.now()

# mostra o mês e o ano atual
print(x.month, x.year)

Saída:

4 2021

Os recursos de data e hora podem ser divididos em duas categorias. A primeira, momentos de um período, e a segunda, o tempo decorrido desde um determinado período. Esses recursos podem ser muito úteis para entender os padrões nos dados.

Divida uma determinada data em recursos:

  • pandas.Series.dt.year retorna o ano da data e hora.
  • pandas.Series.dt.month retorna o mês da data e hora.
  • pandas.Series.dt.day retorna o dia da hora e data.
  • pandas.Series.dt.hour retorna a hora da data e hora.
  • pandas.Series.dt.minute retorna o minuto da data e hora.

Consulte todas as propriedades de data e hora a partir daqui.

Código #3: divida os dados e o tempo em recursos separados

import pandas as pd

# Cria um DataFrame com 72 linhas
# (72 períodos)
rng = pd.DataFrame()
rng['date'] = pd.date_range('1/1/2011', periods=72, freq='H')

# Imprime os cinco primeiros elementos no formato dd-mm-yy 00:00:00
print(rng[:5])

# Crie colunas para ano, mês, dia, hora e minuto
rng['year'] = rng['date'].dt.year
rng['month'] = rng['date'].dt.month
rng['day'] = rng['date'].dt.day
rng['hour'] = rng['date'].dt.hour
rng['minute'] = rng['date'].dt.minute

# mostra as primeiras 3 linhas do DataFrame
print(rng.head(3))

Saída:

                 date
0 2011-01-01 00:00:00
1 2011-01-01 01:00:00
2 2011-01-01 02:00:00
3 2011-01-01 03:00:00
4 2011-01-01 04:00:00
                 date  year  month  day  hour  minute
0 2011-01-01 00:00:00  2011      1    1     0       0
1 2011-01-01 01:00:00  2011      1    1     1       0
2 2011-01-01 02:00:00  2011      1    1     2       0

Código #4: para obter a hora atual, use pandas.Timestamp.now() e, a seguir, converta a data e hora em data e hora e acesse diretamente o ano, mês ou dia.

import pandas as pd

# Input present datetime using Timestamp
t = pd.Timestamp.now()

print(t)

Saída:

2021-04-20 16:28:22.972406

Vamos analisar este problema em um conjunto de dados real uforeports.

import pandas as pd

# Lê um arquivo csv a partir de uma url
df = pd.read_csv('http://bit.ly/uforeports')

print(df.head())

Saída:

                   City Colors Reported Shape Reported State             Time
0                Ithaca             NaN       TRIANGLE    NY   6/1/1930 22:00
1           Willingboro             NaN          OTHER    NJ  6/30/1930 20:00
2               Holyoke             NaN           OVAL    CO  2/15/1931 14:00
3               Abilene             NaN           DISK    KS   6/1/1931 13:00
4  New York Worlds Fair             NaN          LIGHT    NY  4/18/1933 19:00
# converte a coluna Time para o formato datatime
df['Time'] = pd.to_datetime(df.Time)

print(df.head())

Saída:

                   City Colors Reported Shape Reported State                Time
0                Ithaca             NaN       TRIANGLE    NY 1930-06-01 22:00:00
1           Willingboro             NaN          OTHER    NJ 1930-06-30 20:00:00
2               Holyoke             NaN           OVAL    CO 1931-02-15 14:00:00
3               Abilene             NaN           DISK    KS 1931-06-01 13:00:00
4  New York Worlds Fair             NaN          LIGHT    NY 1933-04-18 19:00:00
# Lê um arquivo csv a partir de uma url
df = pd.read_csv('http://bit.ly/uforeports')

# converte a coluna Time para o formato datatime
df['Time'] = pd.to_datetime(df.Time)

# Mostra apenas as horas de cada elemento datetime
print(df.Time.dt.hour.head())

Saída:

0    22
1    20
2    14
3    13
4    19
Name: Time, dtype: int64

Artigo escrito por aakarsha_chugh e traduzido por Acervolima de Python | Working with date and time using Pandas.

Licença