Код: Выделить всё
breakpoints = pl.DataFrame(
{
"features": ["feature_0", "feature_0", "feature_1"],
"breakpoints": [0.1, 0.5, 1],
"n_possible_bins": [3, 3, 2],
}
)
print(breakpoints)
out:
shape: (3, 3)
┌───────────┬─────────────┬─────────────────┐
│ features ┆ breakpoints ┆ n_possible_bins │
│ --- ┆ --- ┆ --- │
│ str ┆ f64 ┆ i64 │
╞═══════════╪═════════════╪═════════════════╡
│ feature_0 ┆ 0.1 ┆ 3 │
│ feature_0 ┆ 0.5 ┆ 3 │
│ feature_1 ┆ 1.0 ┆ 2 │
└───────────┴─────────────┴─────────────────┘
Код: Выделить всё
df = pl.DataFrame(
{"feature_0": [0.05, 0.2, 0.6, 0.8], "feature_1": [0.5, 1.5, 1.0, 1.1]}
)
print(df)
out:
shape: (4, 2)
┌───────────┬───────────┐
│ feature_0 ┆ feature_1 │
│ --- ┆ --- │
│ f64 ┆ f64 │
╞═══════════╪═══════════╡
│ 0.05 ┆ 0.5 │
│ 0.2 ┆ 1.5 │
│ 0.6 ┆ 1.0 │
│ 0.8 ┆ 1.1 │
└───────────┴───────────┘
Код: Выделить всё
encoded_df = pl.DataFrame({"feature_0": [0, 1, 2, 2], "feature_1": [0, 0, 0, 1]})
print(encoded_df)
out:
shape: (4, 2)
┌───────────┬───────────┐
│ feature_0 ┆ feature_1 │
│ --- ┆ --- │
│ i64 ┆ i64 │
╞═══════════╪═══════════╡
│ 0 ┆ 0 │
│ 1 ┆ 0 │
│ 2 ┆ 0 │
│ 2 ┆ 1 │
└───────────┴───────────┘
Метки должны быть массивом: np.array ([str (i) для i в диапазоне (n_possible_bins)]]) , предполагая n_possible_bins Положительное целое число. n_possible_bins может отличаться по функциями. /li>
< /ol>
Я знаю, что polars.expr.cut () принимает параметр перерывов < /code> как Последовательность [float] , но как я могу эффективно передать эти точки останова и метки с точек останова DataFrame?
Подробнее здесь: https://stackoverflow.com/questions/794 ... -dataframe