[Serie Python Fennel Bean] PANDAS Obtiene el número de filas en DataFrame

[Serie Python Fennel Bean] PANDAS Obtiene el número de filas en DataFrame

Al programar en Python, a veces resulta interesante utilizar diferentes métodos para lograr el mismo objetivo. Esto me recuerda al Kong Yiji de Lu Xun. Kong Yiji investigó mucho sobre las cuatro formas de escribir la palabra hinojo para los frijoles de hinojo. No me atrevo a compararme con Kong Yiji, así que aquí colecciono algunos frijoles de hinojo Python para el disfrute de todos los programadores.

¿Cuántos datos hay en total? Este es probablemente el contenido más básico del trabajo de análisis de datos.
Aquí, hablemos sobre cómo obtener la cantidad de filas en DataFrame en Pandas.
Primero prepare un DataFrame para probar. Este DataFrame tiene 3 columnas denominadas a, b y c:

>>> import numpy as np
>>> import pandas as pd
>>> df = pd.DataFrame({
    
    'a':[None,2,3], 'b':[4,5,6], 'c':[7,8,9]})
>>> df
     a  b  c
0  NaN  4  7
1  2.0  5  8
2  3.0  6  9

Una cantidad de frijoles de hinojo:

Hay una declaración SQL SELECT count (*) FROM some_tabley
el DataFrame también tiene una countfunción que se puede usar para contar. El ejemplo es el siguiente:

>>> df['a'].count()
2

Espera, ¿cómo pueden ser 2? ¡El resultado debería ser tres! Resulta countque se eliminará NaN, está en la columna a NaN, por lo que el resultado es incorrecto, veamos la columna b:

>>> df['b'].count()
3

Sin embargo, no podemos garantizar que cada vez que encontremos la columna b, no habrá un valor nulo, por lo que creamos una columna nosotros mismos:

>>> df['aa'] = 1
>>> df
     a  b  c  aa
0  NaN  4  7   1
1  2.0  5  8   1
2  3.0  6  9   1
>>> df['aa'].count()
3

Bueno, hasta ahora misión cumplida, pero... un poco feo.

Forma de frijol de hinojo:

Después de un minucioso estudio, descubrí que DataFrame tiene una función de forma. Esta es una función fantástica, un ejemplo es el siguiente:

>>> df.shape
(3, 3)

Entonces, puedes obtener el resultado así:

>>> df.shape[0]
3

Es asombroso, es asombroso.
Pero la forma tiene dos números, solo necesitamos un número, ¿es un poco derrochador aquí?

Frijoles de hinojo tres len:

Python tiene una len incorporada y, en general, las funciones integradas siempre son un poco más avanzadas. Vamos a intentarlo:

>>> len(df)
3

Entonces, ¿qué hay detrás de esta lente? Compruébalo en IPython:

In [1]: df.__len__??
Signature: df.__len__() -> int
Source:
    def __len__(self) -> int:
        """
        Returns length of info axis, but here we use the index.
        """
        return len(self.index)

¿Cuál es la forma de arriba?

In [2]: df.shape??
Type:        property
Source:
# df.shape.fget
@property
def shape(self) -> Tuple[int, int]:
    """
    Return a tuple representing the dimensionality of the DataFrame.
    ......
    """
    return len(self.index), len(self.columns)

Índice cuatro de frijoles de hinojo:

Como se puede ver en los dos códigos fuente anteriores, deberíamos usar len así:

>>> len(df.index)
3

Frijoles de hinojo cinco y tres más:

Fuera de las montañas y las montañas verdes, siempre hay hinojo en Python. Tres más:

df.index.size
len(df.axes[0])
df.pipe(len)

Supongo que te gusta

Origin blog.csdn.net/mouse2018/article/details/113619187
Recomendado
Clasificación