Я пытаюсь настроить модель линейной регрессии, чтобы прогнозировать количество трафика на основе дня и времени суток.Поскольку оба являются категориальными переменными, я должен создать фиктивные переменные.Функция get_dummies
делает это очень легко, когда вы делаете это для обеих переменных по отдельности.Однако в случае прогнозирования объемов трафика важна взаимозависимость между днем и временем суток.Поэтому мне понадобятся манекены для всех дней * всех временных интервалов.
Я сделал небольшой пример, чтобы не беспокоить вас большими наборами данных:
import pandas as pd
df = pd.DataFrame({'Day': ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
'Time': [11,15,9,15,17,10,20],
'Count': [100,150,150,150,180,60,50]})
df_dummies = pd.get_dummies(df.Day)
print(df_dummies)
В результате получается хороший кадр данных сманекены:
Fri Mon Sat Sun Thu Tue Wed
0 0 1 0 0 0 0 0
1 0 0 0 0 0 1 0
2 0 0 0 0 0 0 1
3 0 0 0 0 1 0 0
4 1 0 0 0 0 0 0
5 0 0 1 0 0 0 0
6 0 0 0 1 0 0 0
Итак, что мне нужно, примерно так:
import pandas as pd
df = pd.DataFrame({'Day': ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
'Time': [11,15,9,15,17,10,20],
'Count': [100,150,150,150,180,60,50]})
df_dummies = pd.get_dummies(df.Day * df.Time)
print(df_dummies)
С таким результатом:
Fri_9 Fri_15 Mon_9 Mon_15 Sat_9 Sat_15 Sun_9 ...
0 0 1 0 0 0 0 0 ...
1 0 0 0 0 0 1 0 ...
2 0 0 0 0 0 0 1 ...
3 0 0 0 0 1 0 0 ...
4 1 0 0 0 0 0 0 ...
5 0 0 1 0 0 0 0 ...
6 0 0 0 1 0 0 0 ...
7 0 0 0 0 0 0 0 ...
[...]
Есть ли способв котором это можно сделать элегантно?