Personaliza tu importación de pandas
El paquete pandas
es excelente para tratar muchos de los problemas que te plantearás
encontrar al importar datos como científico de datos, como comentarios
que se producen en archivos planos, líneas vacías y valores que faltan (NA
o NaN
). Para terminar este capítulo, vas a importar un archivo corrupto
copia del conjunto de datos de Titanic titanic_corrupt.txt
, que contiene comentarios después del carácter '#'
, y está delimitado por tabulaciones.
Los argumentos clave para pd.read_csv()
incluyen:
sep
establece el delimitador esperado.Puedes utilizar
','
para delimitado por comas.Puedes utilizar
'\t'
para delimitar por tabulaciones.
comment
toma los caracteres que aparecen después de los comentarios en el archivo, indicando que se ignore cualquier texto que empiece por estos caracteres.na_values
toma una lista de cadenas para identificarlas comoNA
/NaN
. Por defecto, algunos valores ya se reconocen comoNA
/NaN
. Si proporcionas este argumento, obtendrás valores adicionales.
Este ejercicio forma parte del curso
Introducción a la importación de datos en Python
Instrucciones de ejercicio
Completa los argumentos de
pd.read_csv()
para importartitanic_corrupt.txt
correctamente utilizando pandas:sep
establece el delimitador a utilizar, y funciona de la misma manera que el argumentodelimiter
denp.loadtxt()
. Ten en cuenta que el archivo que importas está delimitado por tabulaciones.comment
toma los caracteres que siguen a los comentarios en el archivo, que en este caso es'#'
.na_values
toma una lista de cadenas que deben tratarse comoNA
/NaN
, en este caso la cadena'Nothing'
.
Ejecuta el resto del código para imprimir la cabecera del DataFrame resultante y trazar el histograma del
'Age'
de pasajeros a bordo del Titanic.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# Import matplotlib.pyplot as plt
import matplotlib.pyplot as plt
# Assign filename: file
file = 'titanic_corrupt.txt'
# Import file: data
data = pd.read_csv(file, sep='____', comment='____', na_values=[____])
# Print the head of the DataFrame
print(data.head())
# Plot 'Age' variable in a histogram
pd.DataFrame.hist(data[['Age']])
plt.xlabel('Age (years)')
plt.ylabel('count')
plt.show()