Создание флагов недели из DOW - PullRequest
1 голос
/ 16 июня 2020

У меня есть датафрейм:

    DOW
0   0
1   1
2   2
3   3
4   4
5   5
6   6

Это соответствует дню недели. Теперь я хочу создать этот фрейм данных:

   DOW MON_FLAG TUE_FLAG    WED_FLAG    THUR_FLAG   FRI_FLAG    SAT_FLAG
0   0   0        0          0             0            0           0
1   1   1        0          0             0            0           0
2   2   0        1          0             0            0           0
3   3   0        0          1             0            0           0
4   4   0        0          0             1            0           0
5   5   0        0          0             0            1           0
6   6   0        0          0             0            0           1
7   0   0        0          0             0            0           0
8   1   1        0          0             0            0           0

В зависимости от столбца DOW, например его 1, тогда MON_FLAG будет 1, если его 2, то TUES_FLAG будет 1 и так далее. Я оставил воскресенье равным 0, поэтому в этом случае все столбцы флагов равны нулю.

1 Ответ

2 голосов
/ 16 июня 2020

Используйте get_dummies с rename столбцами по словарю:

d = {0:'SUN_FLAG',1:'MON_FLAG',2:'TUE_FLAG',
     3:'WED_FLAG',4:'THUR_FLAG',5: 'FRI_FLAG',6:'SAT_FLAG'}
df = df.join(pd.get_dummies(df['DOW']).rename(columns=d))
print (df)
   DOW  SUN_FLAG  MON_FLAG  TUE_FLAG  WED_FLAG  THUR_FLAG  FRI_FLAG  SAT_FLAG
0    0         1         0         0         0          0         0         0
1    1         0         1         0         0          0         0         0
2    2         0         0         1         0          0         0         0
3    3         0         0         0         1          0         0         0
4    4         0         0         0         0          1         0         0
5    5         0         0         0         0          0         1         0
6    6         0         0         0         0          0         0         1
7    0         1         0         0         0          0         0         0
8    1         0         1         0         0          0         0         0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...