feat: implementar estatísticas

This commit is contained in:
2025-11-09 18:32:47 -01:00
parent 5eed5fbe7a
commit a490bc7756
10 changed files with 110 additions and 683 deletions

96
utils/stats.py Normal file
View File

@@ -0,0 +1,96 @@
# pyright: basic
import os
import pandas as pd
import numpy as np
STAT_MENU = """=== Earthquakes ===
== Estatísticas ==
[1] Média
[2] Variância
[3] Desvio padrão
[4] Máximo
[5] Mínimo
[Q] Voltar ao menu principal
"""
def stat_menu(df: pd.DataFrame):
inStats = True
while inStats:
os.system("cls")
print(STAT_MENU)
usrIn = input("Opção: ").lower()
match usrIn:
case "1":
pass
case "2":
pass
case "3":
pass
case "4":
pass
case "5":
pass
case "q":
inStats = False
pass
case _:
pass
def average(df: pd.DataFrame, filter_by):
values = df[filter_by].to_numpy()
if filter_by == "Magnitudes":
values = _unpack_mags(values)
return np.average(values)
def variance(df, filter_by):
values = df[filter_by].to_numpy()
if filter_by == "Magnitudes":
values = _unpack_mags(values)
return np.var(values)
def std_dev(df, filter_by):
values = df[filter_by].to_numpy()
if filter_by == "Magnitudes":
values = _unpack_mags(values)
return np.std(values)
def max(df, filter_by):
values = df[filter_by].to_numpy()
if filter_by == "Magnitudes":
values = _unpack_mags(values)
return np.max(values)
def min(df, filter_by):
values = df[filter_by].to_numpy()
if filter_by == "Magnitudes":
values = _unpack_mags(values)
return np.min(values)
def _unpack_mags(arr: np.ndarray):
newVals = np.empty(0)
for v in arr:
for m in v:
newVals = np.append(newVals, np.float32(m["Magnitude"]))
return newVals