Como recupero o número de colunas em um quadro de dados do Pandas?


184

Como você recupera programaticamente o número de colunas em um dataframe do pandas? Eu esperava algo como:

df.num_columns

Respostas:


305

Igual a:

import pandas as pd
df = pd.DataFrame({"pear": [1,2,3], "apple": [2,3,4], "orange": [3,4,5]})

len(df.columns)
3

35
além df.shapedá um tuplo com (n_rows, n_columns)
mkln

3
@mkln se você postar df.shape [1] como resposta, eu marcaria com +1. Esta é a melhor maneira de trabalhar com numpy e merece ser uma resposta separada.
Phil Cooper

feito. @ PhilCooper talvez você possa explicar por que df.shapeé melhor? meu palpite é que ele não chama uma função, mas apenas lê o atributo da memória?
Mkln

113

Alternativo:

df.shape[1]

( df.shape[0]é o número de linhas)


2
+1 porque eu gosto de incentivar o endereçamento de objetos numpy e pandas com sintaxe do tipo martix. (df.shape vs len (df.columns)). Verdade seja dita, se você observar o formato do descritor dos pandas, ele chamará len (df.columns), mas matrizes e matrizes numpy os terão como atributo. a maioria das operações vectorized eficientes pode ser feito com syntas python regulares ao contrário de operações vectorized e é quase sempre errado (operações numba / jit exceção de que criticizm)
Phil Cooper

26

Se a variável que contém o quadro de dados for chamada df, então:

len(df.columns)

fornece o número de colunas.

E para quem deseja o número de linhas:

len(df.index)

Para uma tupla contendo o número de linhas e colunas:

df.shape

3
Não len(df)lhe daria as linhas?
Padraic Cunningham

4
Os pandas @PadraicCunningham têm tantos atalhos que são fáceis de esquecer, então prefiro ignorá-los e usar a lógica principal para resolver as coisas. Às vezes, você pode sacrificar a velocidade de processamento, mas valorizo ​​meu tempo de codificação e a legibilidade do código por mais de alguns segundos. Nesse caso específico: se você aprender que o número de linhas pode ser calculado com len (df.index), da próxima vez que precisar do número de colunas, é natural que você faça len (df.columns).
multigoodverse


0

A função df.info () fornecerá um resultado semelhante ao abaixo. Se você estiver usando o método read_csv do Pandas sem o parâmetro sep ou sep com ",".

raw_data = pd.read_csv("a1:\aa2/aaa3/data.csv")
raw_data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5144 entries, 0 to 5143
Columns: 145 entries, R_fighter to R_age

0

Existem várias opções para obter o número da coluna e informações da coluna, como:
vamos verificá-las.

local_df = pd.DataFrame (np.random.randint (1,12, tamanho = (2,6)), colunas = ['a', 'b', 'c', 'd', 'e', ​​'f ']) 1. local_df.shape [1] -> atributo Shape retorna a tupla como (linha e colunas) (0,1).

  1. local_df.info () -> info O método retornará informações detalhadas sobre o quadro de dados e suas colunas, tais como contagem de colunas, tipo de dados de colunas, contagem de valores não nulos, uso de memória pelo quadro de dados

  2. len (local_df.columns) -> o atributo column retornará o objeto de índice das colunas do quadro de dados e a função len retornará o total de colunas disponíveis.

  3. local_df.head (0) -> método head com o parâmetro 0 retornará a primeira linha de df, que na verdade nada além de cabeçalho.

Supondo que o número de colunas não seja superior a 10. Para diversão em loop: li_count = 0 para x em local_df: li_count = li_count + 1 impressão (li_count)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.