Как создать двоичный вектор из набора данных, который состоит из 300 000 записей на даты, охватывающие 2012–2019 годы. Цель состоит в том, чтобы создать вектор с датами длины (d1 = 2012-01-02 и d end = 2019-12-31) и значением true или false для переменной x с определенным значением y.
Для длины дат: вернуть true, если существует переменная x со значением y, в противном случае вернуть false.
Вектор должен выглядеть следующим образом:
[d1, True / False, d2, True / False, d3, True / False ..... dn, True / False]
Набор данных выглядит следующим образом, поэтому на дату может входить несколько записей:
datetime x
2012-01-03, y
2012-01-03, y
2012-01-03, z
2012-01-03, v
2012-01-04, z
2012-01-04, v
2012-01-05, y
Итак, здесь должно получиться:
2012-01-03, True
2012-01-04, False
2012-01-05, True
Что я пробовал делать в настоящее время:
dt = datetime.datetime(2012, 1, 1)
end = datetime.datetime(2019, 12, 30, 23, 59, 59)
step = datetime.timedelta(days=1)
y_exists_ondate = []
while dt < end:
df[x == 'y'].isin(df['date'] == dt):
y_exists_ondate.append(dt, False)
else y_exists_ondate.append(dt, True)
dt += step
У кого-нибудь есть советы или указатели о том, как этого добиться?