У меня есть фрейм данных df
ID KD DT
0 1 2 5.6
1 1 5 8.7
4 4 9 1.9
5 4 2 1.7
6 4 7 8.8
2 6 9 8.3
3 6 7 7.2
9 7 36 3.1
10 7 2 2.2
12 7 7 5.6
Я хочу создать фрейм данных таким образом, чтобы для каждого уникального значения KD
добавлялись новые столбцы {-1,0,1}
в зависимости от ID
(от список значений ID
) и DT
. ID = [1,2,4,6,7,8]
. Новый фрейм данных должен иметь столбцы len(ID)+1
, в первом столбце - уникальное значение KD
и столбцы len(D)
, такие что column ID = 1
, если df.loc[(df.ID==id) & (df.KD==kd),'DT'] >= 5
, column ID = 0
, если пара (kd,id)
не входит в df
и column ID = -1
if df.loc[(df.ID==id) & (df.KD==kd),'DT'] < 5
Для указанного выше кадра данных новый кадр данных должен быть
df2
KD 1 2 4 6 7 8
0 2 1 0 -1 0 -1 0
1 5 1 0 0 0 0 0
2 7 0 0 1 1 1 0
3 9 0 0 -1 1 0 0
4 36 0 0 0 0 -1 0
На самом деле число уникальных KD
и ID
очень большой (в диапазоне 10К). Любая помощь в поиске очень эффективного способа сделать это. пожалуйста?