Python: procesamiento de datos CSV

La lectura de datos de CSV (valores separados por comas) es una necesidad fundamental en la ciencia de datos. A menudo, obtenemos datos de diversas fuentes que pueden exportarse a formato CSV para que puedan ser utilizados por otros sistemas. La biblioteca de Panadas proporciona características mediante las cuales podemos leer el archivo CSV en su totalidad y en partes solo para un grupo seleccionado de columnas y filas.

Entrada como archivo CSV

El archivo csv es un archivo de texto en el que los valores de las columnas están separados por una coma. Consideremos los siguientes datos presentes en el archivo llamadoinput.csv.

Puede crear este archivo usando el bloc de notas de Windows copiando y pegando estos datos. Guarde el archivo comoinput.csv usando la opción guardar como todos los archivos (*. *) en el bloc de notas.

id,name,salary,start_date,dept
1,Rick,623.3,2012-01-01,IT
2,Dan,515.2,2013-09-23,Operations
3,Tusar,611,2014-11-15,IT
4,Ryan,729,2014-05-11,HR
5,Gary,843.25,2015-03-27,Finance
6,Rasmi,578,2013-05-21,IT
7,Pranab,632.8,2013-07-30,Operations
8,Guru,722.5,2014-06-17,Finance

Leer un archivo CSV

los read_csvLa función de la biblioteca de pandas se utiliza para leer el contenido de un archivo CSV en el entorno de Python como un DataFrame de pandas. La función puede leer los archivos del sistema operativo utilizando la ruta adecuada al archivo.

import pandas as pd
data = pd.read_csv('path/input.csv')
print (data)

Cuando ejecutamos el código anterior, produce el siguiente resultado. Tenga en cuenta cómo la función ha creado una columna adicional que comienza con cero como índice.

id    name  salary  start_date        dept
0   1    Rick  623.30  2012-01-01          IT
1   2     Dan  515.20  2013-09-23  Operations
2   3   Tusar  611.00  2014-11-15          IT
3   4    Ryan  729.00  2014-05-11          HR
4   5    Gary  843.25  2015-03-27     Finance
5   6   Rasmi  578.00  2013-05-21          IT
6   7  Pranab  632.80  2013-07-30  Operations
7   8    Guru  722.50  2014-06-17     Finance

Leer filas específicas

los read_csvLa función de la biblioteca de pandas también se puede utilizar para leer algunas filas específicas para una columna determinada. Cortamos el resultado de la función read_csv usando el código que se muestra a continuación para las primeras 5 filas de la columna denominada salario.

import pandas as pd
data = pd.read_csv('path/input.csv')

# Slice the result for first 5 rows
print (data[0:5]['salary'])

Cuando ejecutamos el código anterior, produce el siguiente resultado.

0    623.30
1    515.20
2    611.00
3    729.00
4    843.25
Name: salary, dtype: float64

Lectura de columnas específicas

los read_csvLa función de la biblioteca de pandas también se puede utilizar para leer algunas columnas específicas. Usamos el método de indexación de múltiples ejes llamado.loc()para este propósito. Elegimos mostrar la columna de salario y nombre para todas las filas.

import pandas as pd
data = pd.read_csv('path/input.csv')

# Use the multi-axes indexing funtion
print (data.loc[:,['salary','name']])

Cuando ejecutamos el código anterior, produce el siguiente resultado.

salary    name
0  623.30    Rick
1  515.20     Dan
2  611.00   Tusar
3  729.00    Ryan
4  843.25    Gary
5  578.00   Rasmi
6  632.80  Pranab
7  722.50    Guru

Lectura de filas y columnas específicas

los read_csvLa función de la biblioteca de pandas también se puede utilizar para leer algunas columnas y filas específicas. Usamos el método de indexación de múltiples ejes llamado.loc()para este propósito. Elegimos mostrar la columna de salario y nombre para algunas de las filas.

import pandas as pd
data = pd.read_csv('path/input.csv')

# Use the multi-axes indexing funtion
print (data.loc[[1,3,5],['salary','name']])

Cuando ejecutamos el código anterior, produce el siguiente resultado.

salary   name
1   515.2    Dan
3   729.0   Ryan
5   578.0  Rasmi

Lectura de columnas específicas para un rango de filas

los read_csvLa función de la biblioteca de pandas también se puede utilizar para leer algunas columnas específicas y un rango de filas. Usamos el método de indexación de múltiples ejes llamado.loc()para este propósito. Elegimos mostrar la columna de salario y nombre para algunas de las filas.

import pandas as pd
data = pd.read_csv('path/input.csv')

# Use the multi-axes indexing funtion
print (data.loc[2:6,['salary','name']])

Cuando ejecutamos el código anterior, produce el siguiente resultado.

salary    name
2  611.00   Tusar
3  729.00    Ryan
4  843.25    Gary
5  578.00   Rasmi
6  632.80  Pranab