У меня есть журнал данных опроса в формате csv.677 столбцов по 900 строк.Существует ряд из 40 столбцов «Дата и время» и связанных с ними «Оценок», затем много столбцов «Дата и время», за которыми следует ряд столбцов лекарств.Это похоже на таблицу ниже:
ID | Date & Time | Score #1 | Date & Time | Score #2 | Date & Time | Med 1 | Med 2 | Date & Time | Med 1 | Med 2
----|-----------------|----------|-----------------|----------|-----------------|-------|-------|-----------------|-------|-------
1 | 4/28/2018 1:27 | 4 | 4/28/2018 2:05 | 9 | 4/28/2018 1:20 | N | N | 4/28/2018 2:20 | Y | N
2 | 4/26/2018 15:40 | 11 | 4/27/2018 00:02 | 3 | 4/26/2018 15:50 | Y | Y | 4/27/2018 00:02 | N | N
3 | 4/28/2018 4:25 | 5 | 4/28/2018 5:47 | 3 | 4/28/2018 5:11 | N | Y | 4/28/2018 6:11 | Y | N
Я бы хотел отфильтровать данные для каждой строки на основе следующих критериев:
- Всякий раз, когда давалось лекарство, показыватьоценка, которая была сделана незадолго до периода медитациичтобы увидеть):
ID | #1 Date & Time | #1 Score | #1 Date & Time | #1 Med 1 | #1 Med 2 | #2 Date & Time | #2 Score | #2 Date & Time | #2 Med 1 | #2 Med 2
----|-----------------|----------|-----------------|----------|----------|----------------|----------|----------------|----------|----------
1 | 4/28/2018 2:05 | 9 | 4/28/2018 2:20 | Y | N | | | | |
2 | 4/26/2018 15:40 | 11 | 4/26/2018 15:50 | Y | Y | | | | |
3 | 4/28/2018 4:25 | 5 | 4/28/2018 5:11 | N | Y | 4/28/2018 5:47 | 3 | 4/28/2018 6:11 | Y | N
Единственный способ, который приходит ко мне, чтобы решить эту проблему, - это перебор грубой силы через каждый ряд csv и:
- Создатьсписок столбцов, которые содержат дату и время для каждой оценки.
- Создайте список столбцов, которые содержат дату и время для каждого блока Med.
- Просмотрите в каждом блоке медика «Y»ячеек.
- Сравните эту дату / время с перевернутым списком даты / времени Оценка, чтобы найти оценку, которая произошла непосредственно перед медитацией 'Y'.
- Сохраните дату / время,Счет, дата / время, Meds ... в строке нового списка CSV.
Это хорошо, но не очень гибко на случай, если в будущем мне понадобится отфильтровать данные другим способом.Исследуя это, я наткнулся на Панд, которые, казалось, могли бы легко выполнить такую фильтрацию, но я не мог понять, как.У кого-нибудь есть более простое / более гибкое решение?