Hoja de referencia de Pandas para ciencia de datos en Python

โšก Resumen inteligente

Las hojas de referencia de Pandas condensan los comandos mรกs utilizados de la biblioteca en una sola pรกgina. Esta guรญa los agrupa por tarea: instalaciรณn, creaciรณn de Series y DataFrames, importaciรณn de archivos, selecciรณn de filas, limpieza de datos, aplicaciรณn de funciones y exportaciรณn de resultados.

  • ๐Ÿ”˜ Dos estructuras: Una serie contiene una dimensiรณn etiquetada, mientras que un DataFrame contiene dos con tipos de columna mixtos.
  • โ˜‘๏ธ Importa cualquier cosa: Las funciones read_csv, read_excel, read_sql, read_json y read_html cargan archivos en un DataFrame.
  • โœ… Selecciรณn precisa: loc selecciona por etiqueta, iloc por posiciรณn y las mรกscaras booleanas filtran filas por condiciรณn.
  • ๐Ÿงช Limpieza fiable: Las funciones isnull, dropna, fillna, drop_duplicates y replace gestionan los huecos y los registros repetidos.
  • ๐Ÿ› ๏ธ Inspecciona rรกpido: shape, info, dtypes y describe resumen la estructura y las estadรญsticas antes de que comience el anรกlisis.
  • โš ๏ธ Nota de versiรณn: Pandas 3.0 habilita la copia en escritura de forma predeterminada, por lo que la asignaciรณn encadenada genera un error.

Hoja de referencia de Pandas para ciencia de datos en Python

ยฟQuรฉ es una guรญa rรกpida de Pandas?

La biblioteca Pandas incluye cientos de funciones, pero solo un pequeรฑo subconjunto aparece en el trabajo diario. Hoja de trucos de Pandas Es una referencia de una pรกgina que enumera esos comandos, agrupados segรบn la tarea que realizan.

Cubre las estructuras Series y DataFrame, la importaciรณn y exportaciรณn de archivos, la selecciรณn y ordenaciรณn de datos, la limpieza de valores y la aplicaciรณn de funciones. Cada secciรณn a continuaciรณn combina una breve explicaciรณn con cรณdigo ejecutable, por lo que la pรกgina tambiรฉn funciona como un repaso para su habilidades de anรกlisis de datos.

๐Ÿ‘‰ Descargue el PDF de la hoja de referencia aquรญ

Cรณmo instalar e importar Pandas

Dos comandos configuran Pandas, y ambos se ejecutan en una terminal o en un Jupyter Notebook cรฉlula.

Paso 1) Instalar Pandas

Ejecute esto una vez por entorno; antepรณngale un signo de exclamaciรณn en una celda del cuaderno.

pip install pandas

Paso 2) Importar Pandas

Importa el paquete bajo el alias pd, lo cual se presupone en todos los ejemplos aquรญ presentados.

import pandas as pd

Ahora puedes usar las funciones de Pandas para manipular, analizar y limpiar datos. Las secciones siguientes las enumeran en el orden en que normalmente las utilizas.

Estructuras de datos de Pandas

Pandas tiene dos estructuras de datos, Serie y Marco de datosAmbos son arreglos etiquetados y ambos pueden contener cualquier tipo de dato. La รบnica diferencia es la dimensionalidad: una Serie es un arreglo unidimensional y un DataFrame es un arreglo bidimensional construido a partir de NumPy matrices debajo.

Elemento Serie Marco de datos
Dimensiones Unidimensional Bidimensional
Reservaciones Una sola columna etiquetada Muchas columnas, tipos de datos mixtos
Constructor pd.Series() pd.DataFrame()

1. Serie

Es una matriz etiquetada unidimensional. Puede contener cualquier tipo de dato y None se convierte en un valor faltante.

s = pd.Series([2, -4, 6, 3, None], index=['A', 'B', 'C', 'D', 'E'])

2. Marco de datos

Se trata de una matriz bidimensional etiquetada. Puede contener cualquier tipo de dato y columnas de diferentes tamaรฑos.

data = {'RollNo' : [101, 102, 75, 99],
        'Name' : ['Mithlesh', 'Ram', 'Rudra', 'Mithlesh'],
        'Course' : ['Nodejs', None, 'Nodejs', 'JavaScript']
}
df = pd.DataFrame(data, columns=['RollNo', 'Name', 'Course'])
df.head()

La hoja de referencia imprimible que aparece a continuaciรณn recopila los mismos comandos en una sola pรกgina.

Hoja de referencia imprimible de Pandas con comandos para Series y DataFrames.

Importar datos

Pandas puede leer muchos tipos de archivos directamente en un DataFrame. Cada lector a continuaciรณn devuelve uno, y read_csv () es el mรกs utilizado.

# Import a CSV file pd
pd.read_csv(filename)

# Import a TSV file
pd.read_table(filename)

# Import a Excel file pd
pd.read_excel(filename)

# Import a SQL table/database
pd.read_sql(query, connection_object)

# Import a JSON file
pd.read_json(json_string)

# Import a HTML file
pd.read_html(url)

# From clipboard to read_table()
pd.read_clipboard()

# From dict
pd.DataFrame(dict)

Selecciรณn

Puedes seleccionar elementos por su ubicaciรณn o por su etiqueta de รญndice. La misma sintaxis de corchetes selecciona filas, columnas y segmentos de ambas estructuras.

1. Serie

# Accessing one element from Series
s['D']

# Accessing all elements between two given indices
s['A':'C']

# Accessing all elements from starting till given index
s[:'C']

# Accessing all elements from given index till end
s['B':]

2. Marco de datos

# Accessing one column df
df['Name']

# Accessing rows from after given row
df[1:]

# Accessing till before given row
df[:1]

# Accessing rows between two given rows
df[1:2]

Seleccionar mediante indexaciรณn booleana y configuraciรณn

Usar iloc y iat para posiciones enteras, y loc y at para etiquetas.

1. Por Posiciรณn

df.iloc[0, 1]

df.iat[0, 1]

2. Por etiqueta

df.loc[[0],  ['Name']]

3. Por etiqueta/posiciรณn

df.loc[2] # Both are same
df.iloc[2]

4. Indexaciรณn booleana

Una mรกscara booleana conserva solo las filas donde la condiciรณn es verdadera. El segundo ejemplo aรฑade el operador NOT. ~, por lo que tambiรฉn devuelve valores que no son superiores a 1.

# Series s where value is > 1
s[(s > 0)]

# Series s where value is <-2 or >1
s[(s < -2) | ~(s > 1)]

# Use filter to adjust DataFrame
df[df['RollNo']>100]

# Set index a of Series s to 6
s['D'] = 10
s.head()

Limpieza de datos

Para Python Para fines de limpieza de datos, puede realizar las siguientes operaciones:

  • Cambie el nombre de las columnas usando el rename() mรฉtodo.
  • Actualizar valores usando el at[] or iat[] mรฉtodo para acceder y modificar elementos especรญficos.
  • Cree una copia de una Serie o DataFrame utilizando el copy() mรฉtodo.
  • Compruebe si hay valores NULL utilizando el isnull() mรฉtodo, y dรฉjelos caer usando el dropna() mรฉtodo.
  • Compruebe si hay valores duplicados utilizando el duplicated() mรฉtodo. Suรฉltalos usando el drop_duplicates() mรฉtodo.
  • Reemplace los valores NULL usando el fillna() mรฉtodo con un valor especificado.
  • Reemplazar valores usando el replace() mรฉtodo.
  • Ordenar valores usando el sort_values() mรฉtodo.
  • Valores de clasificaciรณn utilizando el rank() mรฉtodo.
# Renaming columns
df.columns = ['a','b','c']
df.head()

# Mass renaming of columns
df = df.rename(columns={'RollNo': 'ID', 'Name': 'Student_Name'})

# Or use this edit in same DataFrame instead of in copy
df.rename(columns={'RollNo': 'ID', 'Name': 'Student_Name'}, inplace=True)
df.head()

# Counting duplicates in a column
df.duplicated(subset='Name')

# Removing entire row that has duplicate in given column
df.drop_duplicates(subset=['Name'])

# You can choose which one keep - by default is first
df.drop_duplicates(subset=['Name'], keep='last')

# Checks for Null Values
s.isnull()

# Checks for non-Null Values - reverse of isnull()
s.notnull()

# Checks for Null Values df
df.isnull()

# Checks for non-Null Values - reverse of isnull()
df.notnull()

# Drops all rows that contain null values
df.dropna()

# Drops all columns that contain null values
df.dropna(axis=1)

# Replaces all null values with 'Guru99'
df.fillna('Guru99')

# Replaces all null values with the mean
s.fillna(s.mean())

# Converts the datatype of the Series to float
s.astype(float)

# Replaces all values equal to 6 with 'Six'
s.replace(6,'Six')

# Replaces all 2 with 'Two' and 6 with 'Six'
s.replace([2,6],['Two','Six'])

# Drop from rows (axis=0)
s.drop(['B',  'D'])

# Drop from columns(axis=1)
df.drop('Name', axis=1)

# Sort by labels with axis
df.sort_index()

# Sort by values with axis
df.sort_values(by='RollNo')

# Ranking entries
df.rank()

# s1 is pointing to same Series as s
s1 = s

# s_copy of s, but not pointing same Series
s_copy = s.copy()

# df1 is pointing to same DataFrame as df
df1 = s

# df_copy of df, but not pointing same DataFrame
df_copy = df.copy()

Tenga en cuenta que s1 = s solo crea un segundo nombre para el mismo objeto, nunca una copia; por eso copy() lo sigue.

Recuperaciรณn de informaciรณn

Puedes realizar estas operaciones para recuperar informaciรณn:

  • Utilice el shape atributo para obtener el nรบmero de filas y columnas.
  • Utilice el head() or tail() mรฉtodo para obtener las primeras o las รบltimas filas como muestra.
  • Utilice el info(), describe() or dtypes Mรฉtodo para obtener informaciรณn sobre el tipo de datos, recuento, media, desviaciรณn estรกndar, valores mรญnimos y mรกximos.
  • Utilice el count(), min(), max(), sum(), mean() y median() mรฉtodos para obtener informaciรณn estadรญstica especรญfica para los valores.
  • Utilice el loc[] mรฉtodo para obtener una fila.
  • Utilice el groupby() Mรฉtodo para aplicar la funciรณn GROUP BY para agrupar valores similares en una columna de un DataFrame.

1. Informaciรณn bรกsica

# Counting all elements in Series
len(s)

# Counting all elements in DataFrame
len(df)

# Prints number of rows and columns in dataframe
df.shape

# Prints first 10 rows by default, if no value set
df.head(10)

# Prints last 10 rows by default, if no value set
df.tail(10)

# For counting non-Null values column-wise
df.count()

# For range of index df
df.index

# For name of attributes/columns
df.columns

# Index, Data Type and Memory information
df.info()

# Datatypes of each column
df.dtypes

# Summary statistics for numerical columns
df.describe()

2. Resumen

# For adding all values column-wise
df.sum()

# For min column-wise
df.min()

# For max column-wise
df.max()

# For mean value in number column
df.mean()

# For median value in number column
df.median()

# Count non-Null values
s.count()

# Count non-Null values
df.count()

# Return Series of given column
df['Name'].tolist()

# Name of columns
df.columns.tolist()

# Creating subset
df[['Name', 'Course']]

# Return number of values in each group
df.groupby('Name').count()

Aplicar funciones

apply() Aplica una funciรณn a cada valor. Las reglas de alineaciรณn deciden quรฉ sucede cuando dos objetos comparten solo una parte de su รญndice.

# Define function
f = lambda x: x*5

# Apply this function on given Series - For each value
s.apply(f)

# Apply this function on given DataFrame - For each value
df.apply(f)

1. Alineaciรณn de datos internos

# NA values for indices that don't overlap
s2 = pd.Series([8, -1, 4],  index=['A',  'C',  'D'])
s + s2

2. Aritmรฉtica Operaciones con mรฉtodos de llenado

# Fill values that don't overlap
s.add(s2, fill_value=0)

3. Filtrar, ordenar y agrupar por

Estas funciones se pueden utilizar para filtrar, ordenar y agrupar.ping Objetos Series y DataFrames.

# Filter rows where column is greater than 100
df[df['RollNo']>100]

# Filter rows where 70 < column < 101
df[(df['RollNo'] > 70) & (df['RollNo'] < 101)]

# Sorts values in ascending order
s.sort_values()

# Sorts values in descending order
s.sort_values(ascending=False)

# Sorts values by RollNo in ascending order
df.sort_values('RollNo')

# Sorts values by RollNo in descending order
df.sort_values('RollNo', ascending=False)

Exportar datos

Cada escritor que aparece a continuaciรณn refleja un lector de la secciรณn de importaciรณn, de modo que un archivo puede realizar el viaje de ida y vuelta sin necesidad de herramientas adicionales.

# Export as a CSV file df
df.to_csv(filename)

# Export as a Excel file df
df.to_excel(filename)

# Export as a SQL table df
df.to_sql(table_name, connection_object)

# Export as a JSON file
df.to_json(filename)

# Export as a HTML table
df.to_html(filename)

# Write to the clipboard
df.to_clipboard()

Colaboraciรณn de hoja de trucos

Todos los comandos que aparecen aquรญ se pueden ejecutar en el cuaderno complementario: Hoja de referencia de pandas โ€“ Python para ciencia de datos.ipynb.

Preguntas Frecuentes

La copia en escritura siempre estรก habilitada, las cadenas usan un dtype str dedicado y la asignaciรณn encadenada en una copia filtrada genera ChainedAssignmentError. Asigne a travรฉs de .loc en su lugar. Cada comando aquรญ todavรญa se ejecuta en pandas 3.0.

pd.merge() se une en claves compartidas de la misma manera que un SQL `join` realiza la operaciรณn, `df.join()` alinea por รญndice y `pd.concat()` apila marcos. Usa `merge` para las claves y `concat` para aรฑadir elementos.

df.pivot_table() convierte filas largas en una cuadrรญcula agregada amplia, pd.melt() revierte eso, y stack() o unstack() mueven un nivel entre el รญndice y las columnas.

pd.to_datetime() convierte texto en datetime64, el accesor .dt expone aรฑo, mes y dรญa de la semana, y resample() agrega por dรญa, semana o mes una vez que esa columna es el รญndice.

Las operaciones vectorizadas se ejecutan en C compilado en todo el array, mientras que apply() llama a una Python Funciรณn una vez por fila. Intercambiarping Aplicar la funciรณn apply() por filas a una expresiรณn vectorizada suele ser diez veces mรกs rรกpido.

Los asistentes de IA asocian una descripciรณn simple del resultado con llamadas concretas, sugiriendo agrupar, combinar o usar tablas dinรกmicas con los argumentos necesarios para cada una. Primero, verifique la sugerencia con una muestra pequeรฑa.

Sรญ. Copiloto de GitHub convierte un comentario como agrupar por curso y contar en cรณdigo Pandas funcional dentro JupyterTrate el resultado como un borrador y verifique el nรบmero de filas.

Pasar dtype a read_csv (), convierte las columnas de texto repetidas a categorรญa, convierte los nรบmeros a formato inferior con pd.to_numeric y cรกrgalos en partes usando chunksize. df.info() informa el tamaรฑo real.

Resumir este post con: