7  Piensa POO

https://github.com/AltamarMx/iertools/blob/main/iertools/read.py

import pandas as pd
import matplotlib.pyplot as plt

class read_climate:
    def __init__(self, file_path):
        """
        Constructor para cargar datos desde un archivo CSV y usar la primera columna como índice y pasarla a objeto datetime.
        
        :param file_path: str, la ruta al archivo CSV que se desea cargar.
        """
        self.data = pd.read_csv(file_path,index_col=0,parse_dates=True)
    
    def plot_mean_column(self,column):
        """
        Función para graficar el promedio diario de una columna específica
        
        :param column: str, el nombre de la columna del dataframe.
        """
        self.data[column].resample("D").mean().plot(subplots=True,figsize=(12,3))
        plt.show()
    
    def calculate_mean(self, column):
        """
        Función para calcular el promedio de una columna.
        
        :param column: str, el nombre de la columna sobre la cual calcular el promedio.
        """
        return self.data[column].mean()
tmx_2018 = read_climate("../../data/Temixco_2018_10Min.csv")
tmx_2018.data
Ib Ig To RH WS WD P
time
2018-01-01 00:00:00 NaN NaN 18.70 36.34 1.422 316.0 87864.11
2018-01-01 00:10:00 0.002 0.0 18.95 35.29 1.008 283.7 87876.37
2018-01-01 00:20:00 0.170 0.0 18.94 35.43 1.565 326.0 87888.64
2018-01-01 00:30:00 0.371 0.0 18.77 35.89 2.175 354.5 87887.21
2018-01-01 00:40:00 0.305 0.0 18.81 36.34 1.902 348.0 87886.91
... ... ... ... ... ... ... ...
2018-12-31 23:10:00 0.125 0.0 18.51 47.29 1.715 332.2 87484.32
2018-12-31 23:20:00 0.000 0.0 18.26 48.02 1.703 320.5 87470.70
2018-12-31 23:30:00 0.044 0.0 18.39 46.84 2.887 335.7 87455.03
2018-12-31 23:40:00 0.170 0.0 17.99 47.85 1.528 358.8 87470.02
2018-12-31 23:50:00 0.003 0.0 17.75 49.65 0.598 322.3 87467.29

52560 rows × 7 columns

tmx_2018.plot_mean_column(["Ib"])

tmx_2018.plot_mean_column(["Ib","To"])

tmx_2018.calculate_mean("To")
np.float64(22.838097602739726)