Como selecionar colunas por índice em um dataframe do pandas
Freqüentemente, você pode querer selecionar colunas em um DataFrame do pandas com base em seu valor de índice.
Se quiser selecionar colunas com base na indexação de inteiros, você pode usar a função .iloc .
Se quiser selecionar colunas com base na indexação de rótulos, você pode usar a função .loc .
Este tutorial fornece um exemplo de como usar cada uma dessas funções na prática.
Exemplo 1: Selecione colunas com base na indexação de números inteiros
O código a seguir mostra como criar um DataFrame do pandas e usar .iloc para selecionar a coluna com um valor de índice inteiro de 3 :
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B'], ' points ': [11, 7, 8, 10, 13, 13], ' assists ': [5, 7, 7, 9, 12, 9], ' rebounds ': [11, 8, 10, 6, 6, 5]}) #view DataFrame df team points assists rebounds 0 A 11 5 11 1 To 7 7 8 2 to 8 7 10 3 B 10 9 6 4 B 13 12 6 5 B 13 9 5 #select column with index position 3 df. iloc [:, 3] 0 11 1 8 2 10 3 6 4 6 5 5 Name: rebounds, dtype: int64
Podemos usar sintaxe semelhante para selecionar múltiplas colunas:
#select columns with index positions 1 and 3
df. iloc [:, [1, 3]]
rebound points
0 11 11
1 7 8
2 8 10
3 10 6
4 13 6
5 13 5
Ou poderíamos selecionar todas as colunas de um intervalo:
#select columns with index positions in range 0 through 3
df. iloc [:, 0:3]
team points assists
0 to 11 5
1 To 7 7
2 to 8 7
3 B 10 9
4 B 13 12
5 B 13 9
Exemplo 2: Selecione colunas com base na indexação de rótulos
O código a seguir mostra como criar um DataFrame do pandas e usar .loc para selecionar a coluna com um rótulo de índice de “bounces” :
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B'], ' points ': [11, 7, 8, 10, 13, 13], ' assists ': [5, 7, 7, 9, 12, 9], ' rebounds ': [11, 8, 10, 6, 6, 5]}) #view DataFrame df team points assists rebounds 0 A 11 5 11 1 To 7 7 8 2 to 8 7 10 3 B 10 9 6 4 B 13 12 6 5 B 13 9 5 #select column with index label 'rebounds' df. loc [:, ' rebounds '] 0 11 1 8 2 10 3 6 4 6 5 5 Name: rebounds, dtype: int64
Podemos usar sintaxe semelhante para selecionar múltiplas colunas com rótulos de índice diferentes:
#select the columns with index labels 'points' and 'rebounds'
df. loc [:,[' points ',' rebounds ']]
rebound points
0 11 11
1 7 8
2 8 10
3 10 6
4 13 6
5 13 5
Ou poderíamos selecionar todas as colunas de um intervalo:
#select columns with index labels between 'team' and 'assists'
df. loc [:, ' team ':' assists ']
team points assists
0 to 11 5
1 To 7 7
2 to 8 7
3 B 10 9
4 B 13 12
5 B 13 9
Relacionado: Pandas loc vs iloc: qual a diferença?
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras operações comuns em pandas:
Como agrupar por índice em um DataFrame do Pandas
Como selecionar linhas por índice em um DataFrame do Pandas
Como obter números de linha em um DataFrame do Pandas
Como remover a coluna de índice em um DataFrame do Pandas