Las 13 funciones de pandas más importantes para la ciencia de datos

Contenidos

Este post fue hecho público como parte del Blogatón de ciencia de datos.

Introducción

Python es fácil de aprender, dispone de una gran comunidad en línea de estudiantes e instructores, y tiene algunas bibliotecas centradas en datos verdaderamente poderosas. Pandas es una de las bibliotecas más importantes de Python para análisis de datos y ciencia de datos.

Cambiar la forma de los datos de Pandas con Melt |  Codementor

En este post, veremos las 13 funciones y métodos de Pandas más importantes que son esenciales para que todos los analistas y científicos de datos los conozcan.

1. read_csv ()

La función read_csv () ayuda a leer un archivo de valores separados por comas (csv) en un Pandas DataFrame. Todo lo que necesita hacer es mencionar la ruta del archivo que desea que lea. Además puede leer archivos separados por delimitadores que no sean comas, como | o pestaña. Más detalles aquí.

data_1 = pd.read_csv(r'C:UsersABCDesktopblog_dataset.csv')

Los datos se han leído desde la fuente de datos en Pandas DataFrame. Deberá cambiar la ruta del archivo que desea leer. Usted puede descargar el conjunto de datos utilizado en el blog.

La función to_csv () funciona exactamente de manera opuesta a read_csv (). Ayuda a escribir datos contenidos en Pandas DataFrame o Series en un archivo csv. Puede leer más sobre to_csv () aquí. read_csv () y to_csv () son una de las funciones más utilizadas en Pandas debido a que se usan al leer datos de una fuente de datos, y es muy importante conocerlas.

2. cabeza ()

head (n) se utiliza para devolver las primeras n filas de un conjunto de datos. De forma predeterminada, df.head () devolverá las primeras 5 filas del DataFrame. Si desea más / menos número de filas, puede especificar n como un número entero.

data_1.head(6)

Producción:

Nombre La edad Ciudad Estado DOB Género Temperatura de la ciudad Salario
0 Alam 29 Indore Madhya Pradesh 20-11-1991 Masculino 35,5 50000
1 Rohit 23 Nueva Delhi Delhi 19-09-1997 Masculino 39,0 85000
2 Bimla 35 Rohtak Haryana 09-01-1985 Mujer 39,7 20000
3 Rahul 25 Calcuta al oeste de Bengala 19-09-1995 Masculino 36,5 40000
4 Chaman 32 Chennai Tamil Nadu 12-03-1988 Masculino 41,1 65000
5 Vivek 38 Gurugram Haryana 22-06-1982 Masculino 38,9 35000

Las primeras 6 filas (indexadas de 0 a 5) se devuelven como salida según las expectativas.

tail () es equivalente a head () y devuelve las n filas inferiores de un conjunto de datos. head () y tail () lo ayudan a echar un vistazo rápido a su conjunto de datos y verificar si los datos se han leído correctamente en el DataFrame.

3. describir ()

describe () se utiliza para generar estadísticas descriptivas de los datos en un DataFrame o Serie de Pandas. Resume la tendencia central y la dispersión del conjunto de datos. describe () ayuda a obtener una descripción general rápida del conjunto de datos. Se pueden hallar más detalles sobre describe () aquí.

data_1.describe()

Producción:

La edad Temperatura de la ciudad Salario
contar 9.000000 8.000000 9.000000
significar 32.000000 38.575000 44444.444444
std 5.894913 1.771803 21360.659582
min 23.000000 35.500000 18000.000000
25% 29.000000 38.300000 35000.000000
50% 32.000000 38.950000 40000.000000
75% 38.000000 39.175000 52000.000000
max 39.000000 41.100000 85000.000000

describe () enumera diferentes medidas estadísticas descriptivas para todas las columnas numéricas en nuestro conjunto de datos. Al adjudicar al atributo de inclusión el valor ‘todos’, podemos obtener la descripción para incluir todas las columnas, incluidas las que contienen información categórica.

4. uso_memoria ()

memory_usage () devuelve una serie Pandas que tiene el uso de memoria de cada columna (en bytes) en un Pandas DataFrame. Al especificar el atributo profundo como Verdadero, podemos conocer el espacio real que ocupa cada columna. Se pueden hallar más detalles sobre memory_usage () aquí.

data_1.memory_usage(deep=True)

Producción:

Index         80
Name         559
Age           72
City         578
State        584
DOB          603
Gender       553
City temp     72
Salary        72
dtype: int64

El uso de memoria de cada columna se ha dado como salida en una serie Pandas. Es esencial conocer el uso de memoria de un DataFrame, de modo que pueda abordar errores como MemoryError en Python.

5. astype ()

astype () se utiliza para convertir un objeto Python a un tipo de datos en particular. Puede ser una función muy útil en caso de que sus datos no estén almacenados en el formato correcto (tipo de datos). A modo de ejemplo, si Python ha malinterpretado de alguna manera los números de punto flotante como cadenas, puede convertirlos de nuevo a números de punto flotante con astype (). O si desea convertir un tipo de datos de objeto en una categoría, puede utilizar astype ().

data_1['Gender'] = data_1.Gender.astype('category')

Puede verificar el cambio en el tipo de datos mirando los tipos de datos de todas las columnas en el conjunto de datos usando el atributo dtypes. Para ver la documentación de astype (), haga clic en aquí.

6. loc[:]

loc[:] ayuda a entrar a un grupo de filas y columnas en un conjunto de datos, una porción del conjunto de datos, según nuestro requisito. A modo de ejemplo, si solo queremos las últimas 2 filas y las primeras 3 columnas de un conjunto de datos, podemos entrar a ellas con la ayuda de loc[:]. Además podemos entrar a filas y columnas sustentadas en etiquetas en lugar de filas y números de columna.

data_1.loc[0:4, ['Name', 'Age', 'State']]

Producción:

Nombre La edad Estado
0 Alam 29 Madhya Pradesh
1 Rohit 23 Delhi
2 Bimla 35 Haryana
3 Rahul 25 al oeste de Bengala
4 Chaman 32 Tamil Nadu

El código anterior devolverá las columnas «Nombre», «Edad» y «Estado» para los primeros 5 registros de clientes. Tenga en cuenta que el índice comienza desde 0 en Python, y que loc[:] es inclusivo en ambos valores mencionados. Entonces 0: 4 significará índices de 0 a 4, ambos incluidos.

loc[:] es una de las funciones más poderosas de Pandas, y es imprescindible para todos los analistas de datos y científicos de datos. Puede hallar la documentación para loc[:] aquí.

iloc[:] funciona de manera equivalente, solo que iloc[:] es no inclusivo en ambos valores. Tan iloc[0:4] devolvería filas con índice 0, 1, 2 y 3, mientras que loc[0:4] devolvería filas con índice 0, 1, 2, 3 y 4. La documentación para iloc[:] puede ser encontrado aquí.

7. to_datetime ()

to_datetime () convierte un objeto Python al formato de fecha y hora. Puede tomar un entero, un número de punto flotante, una lista, Pandas Series o Pandas DataFrame como argumento. to_datetime () es muy poderoso cuando el conjunto de datos tiene valores de series de tiempo o fechas.

data_1['DOB'] = pd.to_datetime(data_1['DOB'])

La columna DOB ahora se ha cambiado al formato de hora de datos de Pandas. Todas las funciones de fecha y hora ahora se pueden aplicar en esta columna. Puede leer más sobre to_datetime () aquí.

8. value_counts ()

value_counts () devuelve una serie Pandas que contiene los recuentos de valores únicos. Considere un conjunto de datos que contiene información de clientes sobre 5,000 clientes de una compañía. value_counts () nos ayudará a identificar el número de ocurrencias de cada valor único en una Serie. Se puede aplicar a columnas que contienen datos como Estado, Industria de empleo o edad de los clientes.

data_1['State'].value_counts()

Producción:

Haryana           3
Delhi             2
West Bengal       1
Tamil Nadu        1
Bihar             1
Madhya Pradesh    1
Name: State, dtype: int64

El número de ocurrencias de cada estado en nuestro conjunto de datos se ha devuelto en la salida, como se esperaba. value_counts () además se puede usar para trazar gráficos de barras de datos categóricos y ordinales.

data_1['State'].value_counts(normalize=True).plot(kind='bar', title="State")

La documentación para value_counts () se puede hallar aquí.

9. drop_duplicates ()

drop_duplicates () devuelve un Pandas DataFrame con filas duplicadas eliminadas. Inclusive entre los duplicados, existe la opción de mantener la primera aparición (registro) del duplicado o la última. Además puede especificar el atributo inplace e ignore_index.

data_1.drop_duplicates(inplace=True)

inplace = True asegura que los cambios se apliquen al conjunto de datos original. Puede verificar los cambios observando la forma del conjunto de datos original y el conjunto de datos modificado (después de borrar los duplicados). Notará que el número de filas se ha reducido de 9 a 8 (debido a que se eliminó 1 duplicado).

10. groupby ()

groupby () se utiliza para agrupar un Pandas DataFrame por 1 o más columnas y realizar alguna operación matemática en él. groupby () se puede usar para resumir datos de una manera sencilla.

data_1.groupby(by='State').Salary.mean()

Producción:

State
Bihar             18000
Delhi             68500
Haryana           27500
Madhya Pradesh    50000
Tamil Nadu        65000
West Bengal       40000
Name: Salary, dtype: int64

El código anterior agrupará el conjunto de datos por la columna «Estado» y devolverá la edad media en todos los estados. Puede hacer un clic aquí para saber más sobre groupby ().

11. fusionar ()

merge () se utiliza para fusionar 2 objetos Pandas DataFrame o un DataFrame y un objeto Series en una columna (campo) común. Si está familiarizado con el concepto de JOIN en SQL, combine una función equivalente a esa. Devuelve el DataFrame combinado.

data_1.merge(data_2, on='Name', how='left')

Para obtener más información sobre atributos como on (incluidos left_on y right_on), cómo y los sufijos, consulte la documentación.

12. sort_values ​​()

sort_values ​​() se utiliza para ordenar la columna en un marco de datos Pandas (o una serie Pandas) por valores en orden ascendente o descendente. Al especificar el atributo inplace como True, puede realizar un cambio de forma directa en el DataFrame original.

data_1.sort_values(by='Name', inplace=True)

Producción:

Nombre La edad Ciudad Estado DOB Género Temperatura de la ciudad Salario
0 Alam 29 Indore Madhya Pradesh 1991-11-20 Masculino 35,5 50000
2 Bimla 35 Rohtak Haryana 1985-09-01 Mujer 39,7 20000
4 Chaman 32 Chennai Tamil Nadu 1988-12-03 Masculino 41,1 65000
6 Charu 29 Nueva Delhi Delhi 1992-03-18 Mujer 39,0 52000
7 Ganesh 39 Patna Bihar 1981-07-12 Masculino Yaya 18000
3 Rahul 25 Calcuta al oeste de Bengala 1995-09-19 Masculino 36,5 40000
1 Rohit 23 Nueva Delhi Delhi 1997-09-19 Masculino 39,0 85000
5 Vivek 38 Gurugram Haryana 1982-06-22 Masculino 38,9 35000

Puede ver que el orden de los registros ha cambiado ahora. Los registros ahora se enumeran en orden alfabético de nombres. sort_values ​​() tiene muchos otros atributos que se pueden especificar. Puedes leer sobre esto aquí.

Semejante a sort_values ​​() es sort_index (). Se utiliza para ordenar el DataFrame por índice en lugar de un valor de columna.

13. fillna ()

Por lo general, en un conjunto de datos grande, encontrará varias entradas etiquetadas como NaN por Python. NaN significa «no es un número» y representa entradas que no se completaron en la fuente de datos original. Al completar los valores en el DataFrame, Pandas se asegura de que el usuario pueda identificar estas entradas de forma separada.

fillna () ayuda a reemplazar todos los valores de NaN en un DataFrame o Series imputando estos valores faltantes con valores más apropiados.

data_1['City temp'].fillna(38.5, inplace=True)

El código anterior reemplazará todas las entradas en blanco de «temperatura de la ciudad» con 38.5. Los valores faltantes se pueden imputar con la media, la mediana, la moda o algún otro valor. Hemos escogido el medio para nuestro caso.

EndNotes

En este post, echamos un vistazo a las 13 funciones y métodos más importantes de Pandas que son importantes para el análisis de datos y la ciencia de datos. Este post fue escrito por Vishesh Arora (LinkedIn).

Los medios que se muestran en este post no son propiedad de DataPeaker y se usan a discreción del autor.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.