Noobie здесь, так что, пожалуйста, потерпите меня. Я постараюсь сделать это как можно более кратким.
У меня есть два кадра данных:
df2
: состоит из уникальных visit number
для каждого человека, время прибытия человека в наш магазин, время отправления человека из нашего магазина
df1
: Подмножество visit numbers
из df2
(а также некоторые другие данные, отсутствующие в df2
).
Каждый visit number
в df1
находится в df2
, но обратное неверно.
Что мне нужно сделать, это:
Для каждого visit number
в df1
определите общее количество людей, присутствовавших на момент прибытия человека из df1.
Я подумал об этой проблеме следующим образом (я предоставил код ниже):
1. Итерация по df1
2. Возьмите visit ID
с df1
3. Примените это visit ID
к df2
, чтобы узнать время прибытия этого человека
4. Создайте mask
, используя это время прибытия
5. Примените это mask
к df2
, затем просто посчитайте количество строк
for index, row in df1.iterrows():
visit_id = row['ID_number']
df2row = df2[(df2['ID_number'] == visit_id
arrival_time = df2row['Arrival_Date/Time']
mask = (df2['Arrv Date/Time'] < arrival_time) & (df2['Disch
Date/Time'] > arrival_time)
total_customers = len(df2.loc(mask))
Однако, когда я запускаю этот код, я получаю сообщение об ошибке:
ValueError: Can only compare identically-labeled Series objects
Это связано с mask
, который я создал.
Я провел некоторый поиск, и похоже, что эта ошибка как-то связана? Индексация? но я не могу заставить свой код работать. Я пробовал совет в нескольких других темах безрезультатно.
Буду очень признателен за любые советы или другие способы решения этой проблемы !!!!
Спасибо
нуб