Aquí tienes un resumen rápido de cada método y lo que hace: ","read_csv()",": Carga datos de un archivo CSV en un DataFrame de Pandas.","cabeza()",": Muestra las primeras filas del DataFrame.","info()",": Proporciona un resumen conciso del DataFrame, incluidos los tipos de columna y los valores que faltan.","describir()",": Genera estadísticas descriptivas para columnas numéricas.","isnull()",": Identifica los datos que faltan en el DataFrame.","dropna()",": Elimina las filas o columnas en las que faltan datos.","fillna()",": Sustituye los datos que faltan por los valores especificados.","groupby()",": Agrupa los datos en función de una o varias columnas y aplica funciones de agregación.","ordenar_valores()",": Ordena el DataFrame por una o más columnas.","aplicar()",": Aplica funciones personalizadas a filas o columnas del DataFrame.","Requisitos previos"," En primer lugar, asegúrate de que Python está instalado en tu máquina. Si no lo está, puedes descargarlo desde este enlace.
Una vez instalado Python, confirma que la librería Pandas está instalada. Si no lo está, puedes añadirla fácilmente usando el siguiente comando: ","pip install pandas"," Utilizaremos el siguiente conjunto de datos ficticios sobre bienes inmuebles para nuestros ejemplos: ","PropertyID","Ubicación","Dormitorios","Baños","Precio","Metraje cuadrado","Fecha de listado","101","Nueva York","3","2","750000","1800","2023-05-15","102","San Francisco","1","850000","1400","2023-06-01","103","Los Angeles","4","2500","2023-04-10","104","Chicago","650000","1700","105","Miami","5","1200000","3500","2023-03-22","106","Houston","450000","2000","2023-07-01","Las 10 mejores funciones y métodos de Pandas","1. read_csv(): Carga los datos de un fichero CSV en un DataFrame de Pandas."," El primer paso en el uso de pandas es cargar los datos para prepararlos para su procesamiento o análisis. Uno de los métodos más comunes para importar datos a un DataFrame de pandas es la función read_csv(). ","Ejemplo de código:","import pandas as pd\n# Cargar el conjunto de datos en un Pandas DataFrame\nfile_path = \"real_estate_listings.csv\" # Sustitúyase por la ruta real del archivo\n\n# Crear el DataFrame\ndf = pd.read_csv(file_path)","como pd","pandas.read_csv()","pd.read_csv()"," En primer lugar, empezaremos importando la biblioteca pandas. Utilizando "," es una convención común entre los desarrolladores para simplificar el código. Por ejemplo, en lugar de escribir ","podemos utilizar simplemente ","para que el código sea más conciso y fácil de leer. ","leer_csv"," A continuación, especifique la ruta al archivo CSV que desea cargar en un DataFrame de Pandas. A continuación, cree una variable y utilice el método "," para cargar el archivo en el DataFrame. ","Parámetros clave:"," Exploremos ahora algunos parámetros importantes que sigue este método: ","delimitador:"," Especifique el delimitador utilizado en el archivo CSV (por ejemplo, ,, ;, \\t).","df = pd.read_csv(ruta_archivo, delimitador=',')","índice_col",": En nuestra tabla, cada propiedad está identificada por un ID que se encuentra en el campo \"","\". Para asegurarnos de que pandas utiliza esta columna como identificador único para cada propiedad, podemos establecerla explícitamente como columna ID. De lo contrario, pandas generará y asignará automáticamente sus propios valores de ID a cada listado.","df = pd.read_csv(file_path, index_col='PropertyID')","usecols",": Si su fichero CSV contiene numerosas columnas pero sólo necesita unas pocas, pandas le permite conseguirlo fácilmente utilizando un parámetro específico.","df = pd.read_csv(file_path, usecols=['Ubicación', 'Precio', 'Dormitorios'])","2. head() y tail(): Inspeccionar datos","cola()"," Ahora que los datos están cargados en el DataFrame, podemos empezar a explorarlos. Para ello, Pandas proporciona dos métodos muy útiles: "," y ",". Estos métodos son esenciales para inspeccionar rápidamente las primeras o las últimas filas de su conjunto de datos. ","head(): Este método muestra por defecto las 5 primeras filas del conjunto de datos. Es especialmente útil para verificar que los datos se han cargado correctamente y comprobar su estructura.","tail(): Este método funciona de forma similar a head(), pero en su lugar muestra las últimas filas. Resulta útil para examinar el final del conjunto de datos, sobre todo para comprobar si los datos están completos o si faltan valores en los registros finales.","# Ver las 5 primeras filas\nprint(df.head())\n# Ver las 3 últimas filas\nprint(df.tail(3))\n"," Salida de ",": ","3. info() - Comprender la estructura de DataFrame"," La función info() proporciona un resumen conciso del DataFrame. Incluye detalles como: ","El número de filas y columnas.","Nombres de columnas y sus tipos de datos.","El recuento de valores no nulos en cada columna."," Este método es útil para comprender rápidamente la estructura del conjunto de datos y detectar problemas como valores que faltan o tipos de datos incorrectos. ","# Obtener un resumen conciso del DataFrame\nprint(df.info())"," El código anterior produce el siguiente resultado: ","<class 'pandas.core.frame.DataFrame'>\nRangeIndex: 6 entries, 0 to 5\nData columns (total 7 columns):\n# Column Non-Null Count Dtype \n--- ------ -------------- ----- \n0 PropertyID 6 non-null int64 \n1 Location 6 non-null object\n2 Bedrooms 6 non-null int64 \n3 Bathrooms 6 non-null int64 \n4 Price 5 non-null float64\n5 SquareFootage 6 non-null int64 \n6 ListingDate 5 non-null object\ndtypes: float64(1), int64(4), object(2)\nmemory usage: 464.0+ bytes\n","4. describir(): Generar estadísticas resumidas"," En "," ofrece un resumen rápido de parámetros estadísticos clave como ","media",", ","desviación típica","percentiles","y mucho más. Por defecto, "," trabaja con datos numéricos, pero también puede manejar datos categóricos, ofreciendo información personalizada en función del tipo de datos. ",": Una lista de números entre 0 y 1, especificando qué percentiles devolver. El valor por defecto es Ninguno, que devuelve los percentiles 25, 50 y 75. Más información ","aquí",".","incluir",": Lista de tipos de datos que se incluirán en el resumen. Puede especificar tipos de datos como int, float, object (para cadenas), etc. El valor predeterminado es Ninguno, lo que significa que se incluyen todos los tipos numéricos.","excluir","Ninguno",": Lista de tipos de datos que se excluirán del resumen. Este parámetro también es "," por defecto, lo que significa que no se excluye ningún tipo.","imprimir(df.describe())"," La salida del código es la siguiente: "," PropertyID Ubicación Dormitorios ... Precio MetrosCuadrados FechaCalificación\nrecuento 6.000000 6 6.000000... 5.000000e+00 6.000000 5\núnico NaN 6 NaN ... NaN NaN 5\ntop NaN Nueva York NaN ... NaN NaN 2023-05-15\nfreq NaN 1 NaN ... NaN NaN 1\nmedia 103.500000 NaN 3.500000... 7.800000e+05 2150.000000 NaN\nstd 1.870829 NaN 1.048809... 2.774887e+05 755.645419 NaN\nmín 101,000000 NaN 2,000000... 4,500000e+05 1400,000000 NaN\n25% 102,250000 NaN 3,000000... 6,500000e+05 1725,000000 NaN\n50% 103.500000 NaN 3.500000... 7,500000e+05 1900,000000 NaN\n75% 104,750000 NaN 4,000000... 8,500000e+05 2375,000000 NaN\nmáx. 106,000000 NaN 5,000000... 1.200000e+06 3500.000000 NaN\n","Explicación de cada estadística","recuento = 6","Por ejemplo: "," para ",", lo que indica que todas las filas tienen datos válidos.","Cuenta",": El número de entradas que no faltan en cada columna.","media = 3,5","lo que indica una media de ","3,5 dormitorios"," por propiedad.","Media",": El valor medio de la columna.","std = 1,048809","lo que significa que hay una variación moderada en el número de dormitorios.","Std",": La desviación típica, que muestra la dispersión de los valores con respecto a la media.","min = 2","máx = 5","Mín/Máx",": Los valores más pequeño y más grande.","25%",": Valor por debajo del cual se sitúa el 25% de los datos (primer cuartil).","50%",": El valor mediano.","75%",": Valor por debajo del cual se sitúa el 75% de los datos (tercer cuartil).","25%, 50%, 75% (Cuartiles)",": Representan la dispersión de los datos:","5. isnull(): Identificar los datos que faltan","Verdadero","NaN","Falso","suma()"," ayuda a identificar los datos que faltan en un DataFrame. Devuelve un DataFrame con la misma forma que el original, con "," cuando faltan datos "," y "," de lo contrario. Se suele utilizar con otras funciones como "," para contar los valores que faltan en columnas o filas. ","# Identificar los valoresque faltan\nprint(df.isnull())\n# Contar los valores que faltan en cada columna\nprint(df.isnull().sum())\n","df.isnull()"," Salida: "," PropertyID Ubicación Dormitorios Baños Precio Metros cuadrados ListingDate\n0 Falso Falso Falso Falso Falso Falso Falso\n1 Falso Falso Falso Falso Falso Falso Falso\n2 Falso Falso Falso Falso Verdadero Falso Falso\n3 Falso Falso Falso Falso Falso Falso Verdadero\n4 Falso Falso Falso Falso Falso Falso Falso\n5 Falso Falso Falso Falso Falso Falso Falso\n","df.isnull().sum()","PropiedadID 0\nLocalización 0\nDormitorios 0\nBaños 0\nPrecio 1\nMetros cuadrados 0\nFechaCalificación 1\ndtype: int64\n","6. dropna(): Eliminar datos que faltan"," la función elimina ","filas"," o ","columnas"," con datos que faltan "," del DataFrame. Por defecto, elimina las filas con valores perdidos. Puede personalizar su comportamiento para eliminar sólo columnas, o para eliminar filas/columnas en las que falten todos los valores o un subconjunto específico de ellos. ","# Eliminar las filas con valores perdidos \ndf_dropped_rows = df.dropna()\nprint(df_dropped_rows)\n\n# Eliminar las columnas con valores perdidos \ndf_dropped_columns = df.dropna(axis=1)\nprint(df_columnas_eliminadas)\n"," Este es el aspecto del DataFrame después de eliminar todo "," que contiene "," valores: "," Este es el marco de datos con "," valores eliminados. ","7. fillna(): Reemplazar datos que faltan"," sustituye los datos que faltan "," con los valores especificados. Los pandas "," maneja y elimina eficazmente los valores nulos de un DataFrame, mientras que el método "," ofrece una solución flexible para sustituir "," con un valor específico de su elección. Este método ofrece un enfoque flexible para gestionar los datos que faltan, ya que le permite rellenar los huecos utilizando un valor fijo, el ","mediana","modo","u otras estadísticas calculadas. ","# Rellenar los valores que faltan en la columna \"Precio\" con el precio medio df['Precio'] = \ndf['Precio'].fillna(df['Precio'].media()) \nprint(df)"," La salida del código demuestra que el "," se ha sustituido con éxito por el precio medio. ","780000"," también contiene una columna "," valor. En lugar de realizar un cálculo, podemos utilizar simplemente un marcador de posición como \"","desconocido",". He aquí cómo hacerlo; ","# Rellenar los valores que faltan en la columna 'ListingDate' con un marcador de posición\n df['ListingDate'] = df['ListingDate'].fillna('Desconocido')\nprint(df)\n"," El Dataframe tiene ahora el siguiente aspecto: ","Desconocido","8. groupby(): Agrupar y agregar datos"," La función groupby() en Pandas es una herramienta versátil y potente para dividir un DataFrame en grupos basados en una o más columnas, permitiendo un análisis y agregación de datos eficiente.
Funciona según el principio de dividir-aplicar-combinar:
primero, los datos se dividen en grupos;
después, se aplica una función específica a cada grupo;
finalmente, los resultados se combinan en un nuevo DataFrame.
Este enfoque simplifica las complejas tareas de manipulación de datos y aumenta la eficacia analítica. "," Por ejemplo, puede calcular el precio medio de los inmuebles por ubicación o contar el número de anuncios por categoría de habitaciones. ","# Agrupar por 'Ubicación' y calcular el precio medio\navg_price_by_location = df.groupby('Ubicación')['Precio'].mean()\nprint(precio_avg_por_localización)\n# Agrupar por 'Dormitorios ' y calcular el total de metros cuadrados\ntotal_pie_por_dormitorios = df.groupby('Dormitorios')['Metraje_cuadrado'].sum()\nprint(total_pies_cuadrados_por_dormitorios)\n# Agrupar por varias columnas y calcular el recuento\ncount_by_location_bedrooms = df.groupby(['Ubicación', 'Dormitorios']).size()\nprint(recuento_por_habitaciones)\n","Precio medio por localidad:","Ubicación\nChicago 650000,0\nHouston 450000,0\nLos Ángeles NaN\nMiami 1200000.0\nNueva York 750000,0\nSan Francisco 850000.0\nNombre: Precio, dtype: float64\n","Metros cuadrados totales por dormitorios:","Habitaciones\n2 1400\n3 3500\n4 4500\n5 3500\n","Recuento por ubicación y dormitorios:","Ubicación Dormitorios\nChicago 3 1\nHouston 4 1\nLos Angeles 4 1\nMiami 5 1\nNueva York 3 1\nSan Francisco 2 1\ndtype: int64\n","9. sort_values(): Ordenar datos"," La función sort_values( ) se utiliza para ordenar su DataFrame por una o más columnas, ya sea en orden ascendente o descendente. La ordenación es esencial para clasificar datos, identificar extremos (por ejemplo, las propiedades de mayor precio) o simplemente organizar el conjunto de datos para una mejor legibilidad. ","# Ordenar por 'Precio' en orden descendente\ndf_sorted_by_price = df.sort_values(by='Precio', ascendente=False)\nprint(df_sorted_by_price)\n# Ordenar por 'Ubicación' en orden ascendente\ndf_sorted_by_location = df.sort_values(by='Ubicación')\nprint(df_sorted_by_location)\n# Ordenar por varias columnas: primero por 'Dormitorios' (ascendente) y luego por 'Precio' (descendente)\ndf_sorted_by_bedrooms_price = df.sort_values(by=['Dormitorios', 'Precio'], ascending=[True, False])\nprint(df_sorted_by_bedrooms_price)\n","Ordenar por precio (descendente):"," PropertyID Ubicación Dormitorios ... Precio MetrosCuadrados Fecha\n4 105 Miami 5... 1200000.0 3500 2023-03-22\n1 102 San Francisco 2... 850000.0 1400 2023-06-01\n0 101 Nueva York 3... 750000.0 1800 2023-05-15\n3 104 Chicago 3... 650000.0 1700 NaN\n5 106 Houston 4... 450000.0 2000 2023-07-01\n2 103 Los Ángeles 4... NaN 2500 2023-04-10","Ordenar por ubicación (ascendente):","[6 filas x 7 columnas]\n PropertyID Ubicación Dormitorios ... Precio MetrosCuadrados FechaCalificación\n3 104 Chicago 3 . .. 650000.0 1700 NaN\n5 106 Houston 4 . .. 450000.0 2000 2023-07-01\n2 103 Los Ángeles 4 . .. NaN 2500 2023-04-10\n4 105 Miami 5 . .. 1200000.0 3500 2023-03-22\n0 101 Nueva York 3 . .. 750000.0 1800 2023-05-15\n1 102 San Francisco 2 . .. 850000.0 1400 2023-06-01\n","Ordenar por Dormitorios (Ascendente) y Precio (Descendente):"," PropertyID Ubicación Dormitorios ... Precio MetrosCuadrados Fecha\n1 102 San Francisco 2... 850000.0 1400 2023-06-01\n0 101 Nueva York 3... 750000.0 1800 2023-05-15\n3 104 Chicago 3... 650000.0 1700 NaN\n5 106 Houston 4... 450000.0 2000 2023-07-01\n2 103 Los Ángeles 4... NaN 2500 2023-04-10\n4 105 Miami 5... 1200000.0 3500 2023-03-22\n","10. apply(): Aplicar funciones personalizadas a los datos"," La función apply() permite aplicar funciones personalizadas a filas o columnas de un DataFrame. Es un método potente para realizar transformaciones de elementos, cálculos u operaciones condicionales que van más allá de las funciones integradas de Pandas. "," Veamos un ejemplo en el que queremos crear una nueva columna para calcular el precio por pie cuadrado. ","# Define una función personalizada para calcular el precio por pie cuadrado\ndef precio_por_pie_cuadrado(precio, pie_cuadrado):\n return precio / pie cuadrado if pie cuadrado != 0 else 0\n\n# Aplica la función personalizada para crear una nueva columna\ndf['PrecioPorPieCuadrado'] = df.apply(lambda fila: precio_por_pieCuadrado(fila['Precio'], fila['PiesCuadrados']), eje=1)\nprint(df)\n","Este es el resultado del código anterior:"," PropertyID Ubicación Dormitorios ... MetrosCuadrados FechaPrecioPorPieCuadrado\n0 101 Nueva York 3... 1800 2023-05-15 416.666667\n1 102 San Francisco 2... 1400 2023-06-01 607.142857\n2 103 Los Ángeles 4... 2500 2023-04-10 NaN\n3 104 Chicago 3... 1700 NaN 382.352941\n4 105 Miami 5... 3500 2023-03-22 342.857143\n5 106 Houston 4... 2000 2023-07-01 225.000000\n"," Otro ejemplo podría ser convertir los nombres de los lugares en mayúsculas; ","# Aplica una transformación para poner en mayúsculas todos los nombres de ubicación\n df['Localización'] = df['Localización'].apply(lambda x: x.upper())\nprint(df)\n","Esto es lo que parece:"," PropertyID Ubicación Dormitorios ... Precio MetrosCuadrados FechaCalificación\n0 101 NUEVA YORK 3... 750000.0 1800 2023-05-15\n1 102 SAN FRANCISCO 2... 850000.0 1400 2023-06-01\n2 103 LOS ANGELES 4... NaN 2500 2023-04-10\n3 104 CHICAGO 3... 650000,0 1700 NaN\n4 105 MIAMI 5... 1200000.0 3500 2023-03-22\n5 106 HOUSTON 4... 450000.0 2000 2023-07-01","Conclusión"," En esta guía, exploramos 10 funciones esenciales de Pandas para el análisis de datos, desde la carga e inspección de datos con "," a limpiarla y transformarla con métodos como ","y ",". Estas funciones constituyen la base de cualquier flujo de trabajo de análisis de datos, ya que le permiten limpiar, manipular y resumir conjuntos de datos de forma eficaz. Dominarlas le preparará para enfrentarse con confianza a los retos que plantean los datos en el mundo real. Empiece a practicar hoy mismo y descubra cómo estas herramientas pueden simplificar sus tareas de análisis. ","Por: ProxyScrape","Escriba aquí para buscar...","Entradas recientes","How to Handle Pagination in Web Scraping using Python","Exporting Web Scraped Data to CSV, JSON, and Databases ","Introducción al análisis web en Python con Parsel","Web Scraping con lenguaje de programación PHP","luz proxyscrape logotipo","https://proxyscrape.com/static/light_text_logo.svg","¿Necesita ayuda con nuestros proxies o desea colaborar en
? Estas son sus opciones:","Crunchbase","Quiénes somos","Gracias a todos por el increíble apoyo.","Enlaces rápidos","Programa de afiliados","Premium","ProxyScrape prueba premium","Tipos de proxy","Países sustitutos","Casos de uso de proxy","Importante","Política de cookies","Descargo de responsabilidad","Política de privacidad","Condiciones generales","Redes sociales","Facebook","LinkedIn","Twitter","Quora","Telegrama","Discordia","\n Copyright 2025 - Thib BV | Brugstraat 18 | 2812 Mechelen | Bélgica | IVA BE 0749 716 760\n"]}
Pandas es la biblioteca a la que recurren los analistas de datos y los programadores de Python que se aventuran en el mundo de la manipulación y el análisis de datos. Su sintaxis intuitiva y sus potentes estructuras de datos hacen que el manejo de grandes conjuntos de datos no sólo sea manejable, sino también eficiente. Tanto si está importando archivos CSV, limpiando conjuntos de datos desordenados o analizando tendencias de datos, Pandas tiene las herramientas que necesita.
Si estás empezando tu viaje de aprendizaje de Pandas, este post te presentará 10 funciones y métodos esenciales que todo principiante debería dominar. Estas funciones te ayudarán a cargar, inspeccionar, limpiar y analizar datos con facilidad.
Aquí tienes un resumen rápido de cada método y lo que hace:
read_csv()
: Carga datos de un archivo CSV en un DataFrame de Pandas.cabeza()
: Muestra las primeras filas del DataFrame.info()
: Proporciona un resumen conciso del DataFrame, incluidos los tipos de columna y los valores que faltan.describir()
: Genera estadísticas descriptivas para columnas numéricas.isnull()
: Identifica los datos que faltan en el DataFrame.dropna()
: Elimina las filas o columnas en las que faltan datos.fillna()
: Sustituye los datos que faltan por los valores especificados.groupby()
: Agrupa los datos en función de una o varias columnas y aplica funciones de agregación.ordenar_valores()
: Ordena el DataFrame por una o más columnas.aplicar()
: Aplica funciones personalizadas a filas o columnas del DataFrame. En primer lugar, asegúrate de que Python está instalado en tu máquina. Si no lo está, puedes descargarlo desde este enlace.
Una vez instalado Python, confirma que la librería Pandas está instalada. Si no lo está, puedes añadirla fácilmente usando el siguiente comando:
pip install pandas
Utilizaremos el siguiente conjunto de datos ficticios sobre bienes inmuebles para nuestros ejemplos:
PropertyID | Ubicación | Dormitorios | Baños | Precio | Metraje cuadrado | Fecha de listado |
101 | Nueva York | 3 | 2 | 750000 | 1800 | 2023-05-15 |
102 | San Francisco | 2 | 1 | 850000 | 1400 | 2023-06-01 |
103 | Los Angeles | 4 | 3 | 2500 | 2023-04-10 | |
104 | Chicago | 3 | 2 | 650000 | 1700 | |
105 | Miami | 5 | 4 | 1200000 | 3500 | 2023-03-22 |
106 | Houston | 4 | 3 | 450000 | 2000 | 2023-07-01 |
El primer paso en el uso de pandas es cargar los datos para prepararlos para su procesamiento o análisis. Uno de los métodos más comunes para importar datos a un DataFrame de pandas es la función read_csv().
import pandas as pd
# Cargar el conjunto de datos en un Pandas DataFrame
file_path = "real_estate_listings.csv" # Sustitúyase por la ruta real del archivo
# Crear el DataFrame
df = pd.read_csv(file_path)
En primer lugar, empezaremos importando la biblioteca pandas. Utilizando como pd
es una convención común entre los desarrolladores para simplificar el código. Por ejemplo, en lugar de escribir pandas.read_csv()
podemos utilizar simplemente pd.read_csv()
para que el código sea más conciso y fácil de leer.
A continuación, especifique la ruta al archivo CSV que desea cargar en un DataFrame de Pandas. A continuación, cree una variable y utilice el método leer_csv
para cargar el archivo en el DataFrame.
Exploremos ahora algunos parámetros importantes que sigue este método:
delimitador:
Especifique el delimitador utilizado en el archivo CSV (por ejemplo, ,, ;, \t).df = pd.read_csv(ruta_archivo, delimitador=',')
índice_col
: En nuestra tabla, cada propiedad está identificada por un ID que se encuentra en el campo "PropertyID". Para asegurarnos de que pandas utiliza esta columna como identificador único para cada propiedad, podemos establecerla explícitamente como columna ID. De lo contrario, pandas generará y asignará automáticamente sus propios valores de ID a cada listado.df = pd.read_csv(file_path, index_col='PropertyID')
usecols
: Si su fichero CSV contiene numerosas columnas pero sólo necesita unas pocas, pandas le permite conseguirlo fácilmente utilizando un parámetro específico.df = pd.read_csv(file_path, usecols=['Ubicación', 'Precio', 'Dormitorios'])
Ahora que los datos están cargados en el DataFrame, podemos empezar a explorarlos. Para ello, Pandas proporciona dos métodos muy útiles: cabeza()
y cola()
. Estos métodos son esenciales para inspeccionar rápidamente las primeras o las últimas filas de su conjunto de datos.
# Ver las 5 primeras filas
print(df.head())
# Ver las 3 últimas filas
print(df.tail(3))
Salida de cabeza()
:
PropertyID | Ubicación | Dormitorios | Baños | Precio | Metraje cuadrado | Fecha de listado |
101 | Nueva York | 3 | 2 | 750000 | 1800 | 2023-05-15 |
102 | San Francisco | 2 | 1 | 850000 | 1400 | 2023-06-01 |
103 | Los Angeles | 4 | 3 | 2500 | 2023-04-10 | |
104 | Chicago | 3 | 2 | 650000 | 1700 | |
105 | Miami | 5 | 4 | 1200000 | 3500 | 2023-03-22 |
Salida de cola()
:
PropertyID | Ubicación | Dormitorios | Baños | Precio | Metraje cuadrado | Fecha de listado |
104 | Chicago | 3 | 2 | 650000 | 1700 | |
105 | Miami | 5 | 4 | 1200000 | 3500 | 2023-03-22 |
106 | Houston | 4 | 3 | 450000 | 2000 | 2023-07-01 |
La función info() proporciona un resumen conciso del DataFrame. Incluye detalles como:
Este método es útil para comprender rápidamente la estructura del conjunto de datos y detectar problemas como valores que faltan o tipos de datos incorrectos.
# Obtener un resumen conciso del DataFrame
print(df.info())
El código anterior produce el siguiente resultado:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 6 entries, 0 to 5
Data columns (total 7 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 PropertyID 6 non-null int64
1 Location 6 non-null object
2 Bedrooms 6 non-null int64
3 Bathrooms 6 non-null int64
4 Price 5 non-null float64
5 SquareFootage 6 non-null int64
6 ListingDate 5 non-null object
dtypes: float64(1), int64(4), object(2)
memory usage: 464.0+ bytes
En describir() ofrece un resumen rápido de parámetros estadísticos clave como media, desviación típica, percentilesy mucho más. Por defecto, describir()
trabaja con datos numéricos, pero también puede manejar datos categóricos, ofreciendo información personalizada en función del tipo de datos.
percentiles
: Una lista de números entre 0 y 1, especificando qué percentiles devolver. El valor por defecto es Ninguno, que devuelve los percentiles 25, 50 y 75. Más información aquí.incluir
: Lista de tipos de datos que se incluirán en el resumen. Puede especificar tipos de datos como int, float, object (para cadenas), etc. El valor predeterminado es Ninguno, lo que significa que se incluyen todos los tipos numéricos.excluir
: Lista de tipos de datos que se excluirán del resumen. Este parámetro también es Ninguno
por defecto, lo que significa que no se excluye ningún tipo.imprimir(df.describe())
La salida del código es la siguiente:
PropertyID Ubicación Dormitorios ... Precio MetrosCuadrados FechaCalificación
recuento 6.000000 6 6.000000... 5.000000e+00 6.000000 5
único NaN 6 NaN ... NaN NaN 5
top NaN Nueva York NaN ... NaN NaN 2023-05-15
freq NaN 1 NaN ... NaN NaN 1
media 103.500000 NaN 3.500000... 7.800000e+05 2150.000000 NaN
std 1.870829 NaN 1.048809... 2.774887e+05 755.645419 NaN
mín 101,000000 NaN 2,000000... 4,500000e+05 1400,000000 NaN
25% 102,250000 NaN 3,000000... 6,500000e+05 1725,000000 NaN
50% 103.500000 NaN 3.500000... 7,500000e+05 1900,000000 NaN
75% 104,750000 NaN 4,000000... 8,500000e+05 2375,000000 NaN
máx. 106,000000 NaN 5,000000... 1.200000e+06 3500.000000 NaN
recuento = 6
para Dormitorios, lo que indica que todas las filas tienen datos válidos.media = 3,5
para Dormitorioslo que indica una media de 3,5 dormitorios por propiedad.std = 1,048809
para Dormitorioslo que significa que hay una variación moderada en el número de dormitorios.min = 2
y máx = 5
para Dormitorios.25%
: Valor por debajo del cual se sitúa el 25% de los datos (primer cuartil).50%
: El valor mediano.75%
: Valor por debajo del cual se sitúa el 75% de los datos (tercer cuartil). En isnull() ayuda a identificar los datos que faltan en un DataFrame. Devuelve un DataFrame con la misma forma que el original, con Verdadero
cuando faltan datos NaN
y Falso
de lo contrario. Se suele utilizar con otras funciones como suma()
para contar los valores que faltan en columnas o filas.
# Identificar los valoresque faltan
print(df.isnull())
# Contar los valores que faltan en cada columna
print(df.isnull().sum())
df.isnull()
Salida:
PropertyID Ubicación Dormitorios Baños Precio Metros cuadrados ListingDate
0 Falso Falso Falso Falso Falso Falso Falso
1 Falso Falso Falso Falso Falso Falso Falso
2 Falso Falso Falso Falso Verdadero Falso Falso
3 Falso Falso Falso Falso Falso Falso Verdadero
4 Falso Falso Falso Falso Falso Falso Falso
5 Falso Falso Falso Falso Falso Falso Falso
df.isnull().sum()
Salida:
PropiedadID 0
Localización 0
Dormitorios 0
Baños 0
Precio 1
Metros cuadrados 0
FechaCalificación 1
dtype: int64
En dropna() la función elimina filas o columnas con datos que faltan NaN
del DataFrame. Por defecto, elimina las filas con valores perdidos. Puede personalizar su comportamiento para eliminar sólo columnas, o para eliminar filas/columnas en las que falten todos los valores o un subconjunto específico de ellos.
# Eliminar las filas con valores perdidos
df_dropped_rows = df.dropna()
print(df_dropped_rows)
# Eliminar las columnas con valores perdidos
df_dropped_columns = df.dropna(axis=1)
print(df_columnas_eliminadas)
Este es el aspecto del DataFrame después de eliminar todo filas que contiene NaN
valores:
PropertyID | Ubicación | Dormitorios | Baños | Precio | Metraje cuadrado | Fecha de listado |
101 | Nueva York | 3 | 2 | 750000 | 1800 | 2023-05-15 |
102 | San Francisco | 2 | 1 | 850000 | 1400 | 2023-06-01 |
105 | Miami | 5 | 4 | 1200000 | 3500 | 2023-03-22 |
106 | Houston | 4 | 3 | 450000 | 2000 | 2023-07-01 |
Este es el marco de datos con columnas que contiene NaN
valores eliminados.
PropertyID | Ubicación | Dormitorios | Baños | Metraje cuadrado |
101 | Nueva York | 3 | 2 | 1800 |
102 | San Francisco | 2 | 1 | 1400 |
103 | Los Angeles | 4 | 3 | 2500 |
104 | Chicago | 3 | 2 | 1700 |
105 | Miami | 5 | 4 | 3500 |
106 | Houston | 4 | 3 | 2000 |
En fillna() sustituye los datos que faltan NaN
con los valores especificados. Los pandas dropna()
maneja y elimina eficazmente los valores nulos de un DataFrame, mientras que el método fillna()
ofrece una solución flexible para sustituir NaN
con un valor específico de su elección. Este método ofrece un enfoque flexible para gestionar los datos que faltan, ya que le permite rellenar los huecos utilizando un valor fijo, el media, mediana, modou otras estadísticas calculadas.
# Rellenar los valores que faltan en la columna "Precio" con el precio medio df['Precio'] =
df['Precio'].fillna(df['Precio'].media())
print(df)
La salida del código demuestra que el NaN
se ha sustituido con éxito por el precio medio.
PropertyID | Ubicación | Dormitorios | Baños | Precio | Metraje cuadrado | Fecha de listado |
101 | Nueva York | 3 | 2 | 750000 | 1800 | 2023-05-15 |
102 | San Francisco | 2 | 1 | 850000 | 1400 | 2023-06-01 |
103 | Los Angeles | 4 | 3 | 780000 | 2500 | 2023-04-10 |
104 | Chicago | 3 | 2 | 650000 | 1700 | NaN |
105 | Miami | 5 | 4 | 1200000 | 3500 | 2023-03-22 |
106 | Houston | 4 | 3 | 450000 | 2000 | 2023-07-01 |
En Fecha de listado también contiene una columna NaN
valor. En lugar de realizar un cálculo, podemos utilizar simplemente un marcador de posición como "desconocido. He aquí cómo hacerlo;
# Rellenar los valores que faltan en la columna 'ListingDate' con un marcador de posición
df['ListingDate'] = df['ListingDate'].fillna('Desconocido')
print(df)
El Dataframe tiene ahora el siguiente aspecto:
PropertyID | Ubicación | Dormitorios | Baños | Precio | Metraje cuadrado | Fecha de listado |
101 | Nueva York | 3 | 2 | 750000 | 1800 | 2023-05-15 |
102 | San Francisco | 2 | 1 | NaN | 1400 | 2023-06-01 |
103 | Los Angeles | 4 | 3 | 780000 | 2500 | 2023-04-10 |
104 | Chicago | 3 | 2 | 650000 | 1700 | Desconocido |
105 | Miami | 5 | 4 | 1200000 | 3500 | 2023-03-22 |
106 | Houston | 4 | 3 | 450000 | 2000 | 2023-07-01 |
La función groupby() en Pandas es una herramienta versátil y potente para dividir un DataFrame en grupos basados en una o más columnas, permitiendo un análisis y agregación de datos eficiente.
Funciona según el principio de dividir-aplicar-combinar:
primero, los datos se dividen en grupos;
después, se aplica una función específica a cada grupo;
finalmente, los resultados se combinan en un nuevo DataFrame.
Este enfoque simplifica las complejas tareas de manipulación de datos y aumenta la eficacia analítica.
Por ejemplo, puede calcular el precio medio de los inmuebles por ubicación o contar el número de anuncios por categoría de habitaciones.
# Agrupar por 'Ubicación' y calcular el precio medio
avg_price_by_location = df.groupby('Ubicación')['Precio'].mean()
print(precio_avg_por_localización)
# Agrupar por 'Dormitorios ' y calcular el total de metros cuadrados
total_pie_por_dormitorios = df.groupby('Dormitorios')['Metraje_cuadrado'].sum()
print(total_pies_cuadrados_por_dormitorios)
# Agrupar por varias columnas y calcular el recuento
count_by_location_bedrooms = df.groupby(['Ubicación', 'Dormitorios']).size()
print(recuento_por_habitaciones)
Precio medio por localidad:
Ubicación
Chicago 650000,0
Houston 450000,0
Los Ángeles NaN
Miami 1200000.0
Nueva York 750000,0
San Francisco 850000.0
Nombre: Precio, dtype: float64
Metros cuadrados totales por dormitorios:
Habitaciones
2 1400
3 3500
4 4500
5 3500
Recuento por ubicación y dormitorios:
Ubicación Dormitorios
Chicago 3 1
Houston 4 1
Los Angeles 4 1
Miami 5 1
Nueva York 3 1
San Francisco 2 1
dtype: int64
La función sort_values( ) se utiliza para ordenar su DataFrame por una o más columnas, ya sea en orden ascendente o descendente. La ordenación es esencial para clasificar datos, identificar extremos (por ejemplo, las propiedades de mayor precio) o simplemente organizar el conjunto de datos para una mejor legibilidad.
# Ordenar por 'Precio' en orden descendente
df_sorted_by_price = df.sort_values(by='Precio', ascendente=False)
print(df_sorted_by_price)
# Ordenar por 'Ubicación' en orden ascendente
df_sorted_by_location = df.sort_values(by='Ubicación')
print(df_sorted_by_location)
# Ordenar por varias columnas: primero por 'Dormitorios' (ascendente) y luego por 'Precio' (descendente)
df_sorted_by_bedrooms_price = df.sort_values(by=['Dormitorios', 'Precio'], ascending=[True, False])
print(df_sorted_by_bedrooms_price)
Ordenar por precio (descendente):
PropertyID Ubicación Dormitorios ... Precio MetrosCuadrados Fecha
4 105 Miami 5... 1200000.0 3500 2023-03-22
1 102 San Francisco 2... 850000.0 1400 2023-06-01
0 101 Nueva York 3... 750000.0 1800 2023-05-15
3 104 Chicago 3... 650000.0 1700 NaN
5 106 Houston 4... 450000.0 2000 2023-07-01
2 103 Los Ángeles 4... NaN 2500 2023-04-10
Ordenar por ubicación (ascendente):
[6 filas x 7 columnas]
PropertyID Ubicación Dormitorios ... Precio MetrosCuadrados FechaCalificación
3 104 Chicago 3 . .. 650000.0 1700 NaN
5 106 Houston 4 . .. 450000.0 2000 2023-07-01
2 103 Los Ángeles 4 . .. NaN 2500 2023-04-10
4 105 Miami 5 . .. 1200000.0 3500 2023-03-22
0 101 Nueva York 3 . .. 750000.0 1800 2023-05-15
1 102 San Francisco 2 . .. 850000.0 1400 2023-06-01
Ordenar por Dormitorios (Ascendente) y Precio (Descendente):
PropertyID Ubicación Dormitorios ... Precio MetrosCuadrados Fecha
1 102 San Francisco 2... 850000.0 1400 2023-06-01
0 101 Nueva York 3... 750000.0 1800 2023-05-15
3 104 Chicago 3... 650000.0 1700 NaN
5 106 Houston 4... 450000.0 2000 2023-07-01
2 103 Los Ángeles 4... NaN 2500 2023-04-10
4 105 Miami 5... 1200000.0 3500 2023-03-22
La función apply() permite aplicar funciones personalizadas a filas o columnas de un DataFrame. Es un método potente para realizar transformaciones de elementos, cálculos u operaciones condicionales que van más allá de las funciones integradas de Pandas.
Veamos un ejemplo en el que queremos crear una nueva columna para calcular el precio por pie cuadrado.
# Define una función personalizada para calcular el precio por pie cuadrado
def precio_por_pie_cuadrado(precio, pie_cuadrado):
return precio / pie cuadrado if pie cuadrado != 0 else 0
# Aplica la función personalizada para crear una nueva columna
df['PrecioPorPieCuadrado'] = df.apply(lambda fila: precio_por_pieCuadrado(fila['Precio'], fila['PiesCuadrados']), eje=1)
print(df)
Este es el resultado del código anterior:
PropertyID Ubicación Dormitorios ... MetrosCuadrados FechaPrecioPorPieCuadrado
0 101 Nueva York 3... 1800 2023-05-15 416.666667
1 102 San Francisco 2... 1400 2023-06-01 607.142857
2 103 Los Ángeles 4... 2500 2023-04-10 NaN
3 104 Chicago 3... 1700 NaN 382.352941
4 105 Miami 5... 3500 2023-03-22 342.857143
5 106 Houston 4... 2000 2023-07-01 225.000000
Otro ejemplo podría ser convertir los nombres de los lugares en mayúsculas;
# Aplica una transformación para poner en mayúsculas todos los nombres de ubicación
df['Localización'] = df['Localización'].apply(lambda x: x.upper())
print(df)
Esto es lo que parece:
PropertyID Ubicación Dormitorios ... Precio MetrosCuadrados FechaCalificación
0 101 NUEVA YORK 3... 750000.0 1800 2023-05-15
1 102 SAN FRANCISCO 2... 850000.0 1400 2023-06-01
2 103 LOS ANGELES 4... NaN 2500 2023-04-10
3 104 CHICAGO 3... 650000,0 1700 NaN
4 105 MIAMI 5... 1200000.0 3500 2023-03-22
5 106 HOUSTON 4... 450000.0 2000 2023-07-01
En esta guía, exploramos 10 funciones esenciales de Pandas para el análisis de datos, desde la carga e inspección de datos con
y read_csv()
a limpiarla y transformarla con métodos como info()
, isnull()
y fillna()
. Estas funciones constituyen la base de cualquier flujo de trabajo de análisis de datos, ya que le permiten limpiar, manipular y resumir conjuntos de datos de forma eficaz. Dominarlas le preparará para enfrentarse con confianza a los retos que plantean los datos en el mundo real. Empiece a practicar hoy mismo y descubra cómo estas herramientas pueden simplificar sus tareas de análisis. aplicar()