Sahil Garg
modularization, structure reorganization, code cleanup, yaml prompts, logging
de597ec
raw
history blame contribute delete
683 Bytes
import numpy as np
import pandas as pd
def build_features(df, window):
df = df.copy()
df["pdc1"] = df["vdc1"] * df["idc1"]
df["vdc_mean"] = df["vdc1"].rolling(window).mean()
df["vdc_std"] = df["vdc1"].rolling(window).std()
df["pdc_mean"] = df["pdc1"].rolling(window).mean()
df["pdc_std"] = df["pdc1"].rolling(window).std()
df["pdc_delta"] = df["pdc1"].diff()
df["pdc_slope"] = df["pdc1"].rolling(window).apply(
lambda x: np.polyfit(range(len(x)), x, 1)[0], raw=False
)
df["efficiency"] = df["pdc1"] / (df["vdc1"] * df["idc1"] + 1e-6)
df["efficiency_norm"] = df["efficiency"] / df["efficiency"].rolling(window).mean()
return df