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
= read_climate("../../data/Temixco_2018_10Min.csv") tmx_2018
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
"Ib"]) tmx_2018.plot_mean_column([
"Ib","To"]) tmx_2018.plot_mean_column([
"To") tmx_2018.calculate_mean(
np.float64(22.838097602739726)