Подсчитайте количество наблюдений между двумя датами

Проблема среза в C ++ возникает из семантики значений ее объектов, которая оставалась в основном из-за совместимости с C-структурами. Вам нужно использовать явный синтаксис ссылок или указателей для достижения «нормального» поведения объекта, который встречается на большинстве других языков, которые выполняют объекты, т. Е. Объекты всегда передаются по ссылке.

Короткими ответами являются то, что вы нарезаете объект путем присвоения производного объекта базовому объекту значением , то есть оставшийся объект является лишь частью производного объекта. Чтобы сохранить семантику стоимости, нарезка является разумным поведением и имеет относительно редкое применение, которое не существует на большинстве других языков. Некоторые люди считают это особенностью C ++, в то время как многие считают ее одной из особенностей / недостатков C ++.

1
задан Tian 24 March 2019 в 15:23
поделиться

1 ответ

Вы можете использовать маску , чтобы найти нужные записи

import datetime

df = pd.DataFrame([['1','2008-04-02','2008-07-10']], 
  columns=['license', 'issue', 'expire'])

parse_date = lambda x: return datetime.datetime.strptime(x, '%Y-%m-%d')

dt = parse_date('2008-06-01')

date_between = lambda x: parse_date(x['issue']) > dt and parse_date('expire') < dt

df = df[df.apply(date_between)]

. Таким образом, вы можете использовать список для сохранения результата:

s = []
for ds in active_day:
    dt = parse_date(ds)
    n = df[df.apply(date_between)].license.count()
    s.append((dt, n))

result_df = df.DataFrame(s, columns=['active_day', 'count'])
0
ответ дан knh190 24 March 2019 в 15:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: