En esta entrada voy a dar algunas pautas de utilización de ficheros con Python y de su tratamiento para analizar los datos estadísticos que estos contienen.
Para leer un archivo basta con hacer esto:
file_for_reading = open('prueba.txt', 'r')
Como se puede apreciar, no escribimos el directorio, la instrucción se lee del directorio raíz de la instalación de Anaconda que suele ser C:\Usuarios\usuario\
En mi caso particular es C:\Users\Administrador
Para escribir:
file_for_writing = open('prueba.txt', 'w')
para añadir datos
file_for_appending = open('prueba.txt', 'a')
Cuando escribimos no hay que olvidarse de cerrar el fichero
file_for_writing.close()
Para evitar que se nos olvide cerrar el archivo podemos hacer una función que lo cierre siempre y llamar a la función.
#estructura de lectura de ficheros
with open(nombre_fichero,'r') as f:
datos = function_que_lee_los_datos(f)
# aquí el fichero ya está
cerrado pero operamos con el objeto que contiene sus datos (data)
leemos un fichero de principio a fin de este modo
import re
comienza_con_hash = 0
with open('input.txt','r') as f:
for linea in f: # iteramos cada línea del fichero if re.match("^#",linea): # si es un comentario no la
leemos (las que empiezan con '#'
comienza_con_hash += 1 # si comienza con # añadimos 1 al Contador de líneas para
r a la siguiente
el ejemplo completo sería de este estilo
#funcion de lectura de ficheros
def function_que_lee_los_datos(f):
import re
comienza_con_hash = 0
with open('prueba.txt','r') as f:
for linea in f: comienza_con_hash += 1
f.close()
Del mismo modo podemos crear una función que procese los datos utilizando el objeto Datos
Process(datos)
Leer y visualizar un fichero .csv
Un archivo csv es un archivo cuyas columnas están separadas por comas “,” una forma sencilla de montar un archivo csv es crearlo desde Excel y luego lo abrimos con notepad++ donde le añadimos las comas* “,” y lo renombramos como .csv
*Ojo, Hay que asegurarse de que nuestro Excel genere los .csv con comas, pues puede estar configurado (sobre todo en castellano) con punto y coma ‘;‘ para no confundirlo con las comas ‘,’ decimales. Para evitar problemas, sustituiremos las comas decimales ‘,’ por puntos ‘.’ Y posteriormente sustituiremos los punto y coma ‘;’ por comas ‘,’ de este modo el interprete de Jupyter ya leerá correctamente nuestro archivo .csv.
El archivo csv debe estar en el directorio de trabajo que como hemos dicho suele ser C:\Usuarios\Usuario_principal
Una vez colocado aquí el fichero .csv podemos leerlo con
import pandas as pd
def load_retiro():
return pd.read_csv("retiro.csv")
En nuestro caso se trata de las temperaturas del observatorio de Madrid -Retiro podemos ver las primeras líneas del fichero con estas líneas
datos = load_retiro()
datos.head()
para mostrar la información del archivo
datos.info
Y para mostrar una descripción de los datos ponemos:
datos.describe()
Count nos muestra el número de filas, mean el valor medio, std muestra la desviación estándar, min el valor mínimo, 25% muestra el percentil 25% , etc y max el máximo.
Las siguientes instrucciones nos mostraran unos histogramas mostrando en número de veces que aparece un valor dentro de un rango.
%matplotlib inline
import matplotlib.pyplot as plt
datos.hist(bins=13, figsize=(20,15))
plt.show()
Por ejemplo enero muestra el número de veces que aparecen datos por debajo de 2 ºC , entre 2 y 2,5 ºC , entre 2,5 y 3 ºC etc.
Hay muchas más funciones de Phyton en diferente librerías con la que obtener un montón de información. Pero para obtener gráficos se utiliza mucho matplolib que es muy completa
La
instrucción value_counts() nos permite examinar los
valores que toma una columna del dataset y cuantas veces aparece dicho valor en
todo el dataset.
Para dividir el dataset en dos partes, una de
entrenamiento y otra de pruebas
#dividimos el dataset en dos, uno de entrenamiento con el 80% de los
datos y otro de testeo con el 20%.
#Random state es una semilla aleatoria
from sklearn.model_selection import train_test_split
train_set, test_set =
train_test_split(datos,
test_size=0.2,
random_state=42)
Seleccionar y entrenar el modelo
#tomamos como entrenamiento desde el principio hasta el297 y como tets
desde el 297 hasta el final
X_train, X_test, y_train, y_test = X[:297], X[297:], y[:297], y[297:], AÑO
No hay comentarios:
Publicar un comentario