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:

NombreLa edadCiudadEstadoDOBGéneroTemperatura de la ciudadSalario
0Alam29IndoreMadhya Pradesh20-11-1991Masculino35,550000
1Rohit23Nueva DelhiDelhi19-09-1997Masculino39,085000
2Bimla35RohtakHaryana09-01-1985Mujer39,720000
3Rahul25Calcutaal oeste de Bengala19-09-1995Masculino36,540000
4Chaman32ChennaiTamil Nadu12-03-1988Masculino41,165000
5Vivek38GurugramHaryana22-06-1982Masculino38,935000

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 edadTemperatura de la ciudadSalario
contar9.0000008.0000009.000000
significar32.00000038.57500044444.444444
std5.8949131.77180321360.659582
min23.00000035.50000018000.000000
25%29.00000038.30000035000.000000
50%32.00000038.95000040000.000000
75%38.00000039.17500052000.000000
max39.00000041.10000085000.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:

NombreLa edadEstado
0Alam29Madhya Pradesh
1Rohit23Delhi
2Bimla35Haryana
3Rahul25al oeste de Bengala
4Chaman32Tamil 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:

NombreLa edadCiudadEstadoDOBGéneroTemperatura de la ciudadSalario
0Alam29IndoreMadhya Pradesh1991-11-20Masculino35,550000
2Bimla35RohtakHaryana1985-09-01Mujer39,720000
4Chaman32ChennaiTamil Nadu1988-12-03Masculino41,165000
6Charu29Nueva DelhiDelhi1992-03-18Mujer39,052000
7Ganesh39PatnaBihar1981-07-12MasculinoYaya18000
3Rahul25Calcutaal oeste de Bengala1995-09-19Masculino36,540000
1Rohit23Nueva DelhiDelhi1997-09-19Masculino39,085000
5Vivek38GurugramHaryana1982-06-22Masculino38,935000

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ú.