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