in

python – ¿Cómo obtengo el recuento de filas de un DataFrame de Pandas?

apple touch icon@2

Esta tabla resume las diferentes situaciones en las que querría contar algo en un DataFrame (o Serie, para completar), junto con los métodos recomendados.

Ingrese la descripción de la imagen aquí

Notas al pie

  1. DataFrame.count devuelve recuentos para cada columna como un Series ya que el recuento no nulo varía según la columna.
  2. DataFrameGroupBy.size devuelve un Series, ya que todas las columnas del mismo grupo comparten el mismo recuento de filas.
  3. DataFrameGroupBy.count devuelve un DataFrame, ya que el recuento no nulo podría diferir entre las columnas del mismo grupo. Para obtener el recuento no nulo por grupo para una columna específica, use df.groupby(...)['x'].count() donde «x» es la columna a contar.

#Ejemplos de código mínimo

A continuación, muestro ejemplos de cada uno de los métodos descritos en la tabla anterior. Primero, la configuración –

df = pd.DataFrame({
    'A': list('aabbc'), 'B': ['x', 'x', np.nan, 'x', np.nan]})
s = df['B'].copy()

df

   A    B
0  a    x
1  a    x
2  b  NaN
3  b    x
4  c  NaN

s

0      x
1      x
2    NaN
3      x
4    NaN
Name: B, dtype: object

Recuento de filas de un DataFrame: len(df), df.shape[0], o len(df.index)

len(df)
# 5

df.shape[0]
# 5

len(df.index)
# 5

Parece una tontería comparar el rendimiento de las operaciones de tiempo constante, especialmente cuando la diferencia está en el nivel de «en serio, no se preocupe». Pero esto parece ser una tendencia con otras respuestas, así que estoy haciendo lo mismo para completar.

De los tres métodos anteriores, len(df.index) (como se menciona en otras respuestas) es el más rápido.

Nota

  • Todos los métodos anteriores son operaciones de tiempo constante, ya que son búsquedas de atributos simples.
  • df.shape (Similar a ndarray.shape) es un atributo que devuelve una tupla de (# Rows, # Cols). Por ejemplo, df.shape devoluciones (8, 2) para el ejemplo aquí.

Recuento de columnas de un DataFrame: df.shape[1], len(df.columns)

df.shape[1]
# 2

len(df.columns)
# 2

Análogo a len(df.index), len(df.columns) es el más rápido de los dos métodos (pero requiere más caracteres para escribir).

Recuento de filas de una serie: len(s), s.size, len(s.index)

len(s)
# 5

s.size
# 5

len(s.index)
# 5

s.size y len(s.index) son aproximadamente iguales en términos de velocidad. Pero recomiendo len(df).

Nota
size es un atributo y devuelve el número de elementos (= recuento de filas para cualquier Serie). Los DataFrames también definen un atributo de tamaño que devuelve el mismo resultado que df.shape[0] * df.shape[1].

Recuento de filas no nulas: DataFrame.count y Series.count

Los métodos descritos aquí solo cuentan valores no nulos (lo que significa que los NaN se ignoran).

Vocación DataFrame.count devolverá recuentos no NaN para cada columna:

df.count()

A    5
B    3
dtype: int64

Para Series, use Series.count a un efecto similar:

s.count()
# 3

Recuento de filas por grupo: GroupBy.size

Para DataFrames, usar DataFrameGroupBy.size para contar el número de filas por grupo.

df.groupby('A').size()

A
a    2
b    2
c    1
dtype: int64

Del mismo modo, para Series, usarás SeriesGroupBy.size.

s.groupby(df.A).size()

A
a    2
b    2
c    1
Name: B, dtype: int64

En ambos casos, un Series es regresado. Esto tiene sentido para DataFrames así como todos los grupos comparten el mismo recuento de filas.

Recuento de filas no nulas por grupo: GroupBy.count

Similar al anterior, pero use GroupBy.count, no GroupBy.size. Tenga en cuenta que size siempre devuelve un Series, tiempo count devuelve un Series si se llama en una columna específica, o bien un DataFrame.

Los siguientes métodos devuelven lo mismo:

df.groupby('A')['B'].size()
df.groupby('A').size()

A
a    2
b    2
c    1
Name: B, dtype: int64

Mientras tanto, para count, tenemos

df.groupby('A').count()

   B
A
a  2
b  1
c  0

… llamado a todo el objeto GroupBy, vs.,

df.groupby('A')['B'].count()

A
a    2
b    1
c    0
Name: B, dtype: int64

Llamado en una columna específica.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Java – Abstracción

gfg 200x200 min

comando date en Linux con ejemplos