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