Tenemos el siguiente csv:
edad,nombre,trabajo 25,Ana,Ingeniera 30,Carlos,Contador 22,Marta,Programadora 35,Luis,Médico 28,Sofía,Profesora
Podemos utilizar el siguiente código para imprimir esta información con Python:
import pandas as pd # Lee el archivo CSV y lo guarda en la variable df (DataFrame) df = pd.read_csv('datos.csv') # Imprime el DataFrame print(df)
Y nos imprime el contenido:
Seleccionar una determinada columna Para imprimir las filas de una determinada columna lo haríamos de esta forma:
import pandas as pd # Lee el archivo CSV df = pd.read_csv('datos.csv') # Seleccionar una determinada columna columna = df['nombre'] # Imprime el resultado print(columna)
Seleccionar las primeras filas de un DataFrame Lo haríamos con un head:
import pandas as pd # Cargar un archivo CSV en un DataFrame df = pd.read_csv('datos.csv') # Mostrar las primeras filas del DataFrame print(df.head())
Mostrar aquellas filas que cuya columna empiece por un determinado patrón Para imprimir por ejemplo aquellas filas que empiecen por la letra M, lo hacemos con el siguiente código:
import pandas as pd # Lee el archivo CSV df = pd.read_csv('datos.csv') # Creamos el filtro en la variable filtro y luego lo aplicamos. filtro = df['nombre'].str.startswith('M') # Creamos el filtro resultados_filtrados = df.loc[filtro] # Aplicamos el filtro # Imprime el resultado print(resultados_filtrados)
También podemos hacer esto mismo con la fila que queramos de cualquier columna, por ejemplo ahora de la columna trabajo aquellas filas que empiecen por la letra C:
import pandas as pd # Lee el archivo CSV df = pd.read_csv('datos.csv') # Aplica el filtro para la columna "trabajo" filtro_trabajo = df['trabajo'].str.startswith('C') resultados_filtrados_trabajo = df.loc[filtro_trabajo] # Imprime el resultado print(resultados_filtrados_trabajo)
Filtrar por aquellas filas que contengan una determinada letra Podemos hacer que se nos impriman por ejemplo aquellas filas de la columna nombre que contengan la letra a:
import pandas as pd # Lee el archivo CSV df = pd.read_csv('datos.csv') # Aplica el filtro para la columna "nombre" aquellas filas que contengan la letra a filtro_nombre = df['nombre'].str.contains('a') resultados_filtrados = df.loc[filtro_nombre] # Imprime el resultado print(resultados_filtrados)
O también que tengan la letra a y la letra c:
import pandas as pd # Lee el archivo CSV df = pd.read_csv('datos.csv') # Aplica el filtro para la columna "nombre" a aquellas filas que tengan la letra 'a' filtro_a = df['nombre'].str.contains('a') # Aplica el filtro para la columna "nombre" a aquellas filas que tengan la letra 'c' filtro_c = df['nombre'].str.contains('c') # Combina los filtros utilizando el operador lógico OR (|) resultados_filtrados = df.loc[filtro_a | filtro_c] # Imprime el resultado print(resultados_filtrados)
Hacer una búsqueda de aquellas filas de una columna que acaben de una determinada forma Por ejemplo podemos obtener todos los nombres que terminen por la letra s:
import pandas as pd # Lee el archivo CSV df = pd.read_csv('datos.csv') # Aplica el filtro para la columna "nombre" a aquellas filas cuyos nombres terminan con la letra 's' filtro_s = df['nombre'].str.endswith('s') # Filtra el DataFrame utilizando el filtro resultados_filtrados = df.loc[filtro_s] # Imprime el resultado print(resultados_filtrados)
Filtrar filas por la edad Para poder filtrar aquellas filas que tengan un número inferior o mayor que un determinado patrón, lo hacemos de esta forma:
import pandas as pd # Lee el archivo CSV df = pd.read_csv('datos.csv') # Filtramos el dataframe por la edad df_filtrado = df[df['edad'] > 30] # Imprime el resultado print(df_filtrado)