Skip to content

Instantly share code, notes, and snippets.

View jmquintana79's full-sized avatar
💭
I may be slow to respond.

Juan Quintana jmquintana79

💭
I may be slow to respond.
View GitHub Profile
@jmquintana79
jmquintana79 / commands.md
Last active September 22, 2024 13:33
Este es la libreria de Python que voy a usar como sustituto de *Makefiles*. *Invoke* es util para: - Make task commands. - Run shells commands.

Invoke Commands - Getting started

References

Commands

  • invoke = inv: Comando principal que solo funciona donde hay un fichero tasks.py.
df = df.astype({col: 'float32' for col in df.select_dtypes('float64').columns})
from matplotlib import cm
selection_i = 1
total = 10
color = cm.jet(float(selection_i) / total)
from sklearn.metrics import silhouette_samples
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
import numpy as np
## quantification of clustering quality via silhouette metric
def quantification_clustering_quality(X:np.array, y_km:np.array, verbose:bool = False)->np.array:
"""
Quantification of clustering quality via silhouette metric.
X -- Array of features used to estimate the clustering.
from sklearn.metrics import silhouette_samples
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
## quantification of clustering quality via silhouette plot
def plot_quantification_clustering_quality(X:np.array, y_km:np.array):
"""
Quantification of clustering quality via silhouette analysis plot.
X -- Array of features used to estimate the clustering.
@jmquintana79
jmquintana79 / custom_function_2_args_on_moving_windows.py
Last active August 8, 2024 09:17
Esto permite un uso más flexible de la función *rolling*, tanto por poder aplicar una función custom como por poder usar más de un argumento para esta función (este ejemplo es para dos arguments pero es fácilmente modificable para otro número de argu
## custom function
def custom_function_example(x,y):
return x + y
## apply rolling on a custom function
def apply_rolling_function(df, window_size, func, column1, column2, verbose = False):
# validate arguments
assert column1 in df.columns.tolist()
assert column2 in df.columns.tolist()
# initialize
result = []
## mapplot creation of a z variable according to x/y variables, all of them, in a df
def mapplot(df:pd.DataFrame, c_x:str, c_y:str, c_z:str, title:str = '', c_map:str = "rainbow"):
# validate arguments
assert c_x in df.columns.tolist()
assert c_y in df.columns.tolist()
assert c_z in df.columns.tolist()
# initialize
import matplotlib.pyplot as plt
# collect data
x = df[c_x].values
@jmquintana79
jmquintana79 / save_excel_multiple_sheets.py
Created July 17, 2024 10:54
Guardado de varios dataframes en un sólo fichero excel.
# multiple pandas df tables to one excel file on multiple sheets
with pd.ExcelWriter(path_output, engine='xlsxwriter') as writer:
df1.to_excel(writer, sheet_name='sheet1')
df2.to_excel(writer, sheet_name='sheet2')
df3.to_excel(writer, sheet_name='sheet3')
@jmquintana79
jmquintana79 / function_transformer.py
Last active July 8, 2024 12:03
Los custom transfomer con los que he trabajado hasta ahora eran desarrollados con una clase. Existe una nueva manera a través de la funcionalidad FunctionTransformer de tal manera que aplicando esta a una función la convierte en un transfomer usable
import pandas as pd
from sklearn.preprocessing import FunctionTransformer
from sklearn.pipeline import Pipeline
# example
from sklearn.linear_model import LogisticRegression
# X, y
def get_dummies_size(df):
return pd.get_dummies(df, columns=['size'])
@jmquintana79
jmquintana79 / pipeline_template_scikit.py
Last active July 8, 2024 11:55
References: - How to Create Pipelines in Scikit-learn for More Efficient Data Processing: https://www.statology.org/how-create-pipelines-scikit-learn-for-more-efficient-data-processing/
import pandas as pd
import numpy as np
from sklearn.pipeline import Pipeline
from sklearn.compose import ColumnTransformer
# example models and preprocessors
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.impute import SimpleImputer
from sklearn.linear_model import LogisticRegression
# X, y