File size: 683 Bytes
7690851 de597ec 7690851 de597ec 7690851 de597ec 7690851 de597ec 7690851 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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 |