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()7 Piensa POO
https://github.com/AltamarMx/iertools/blob/main/iertools/read.py
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)