Я пытаюсь найти определенные c значения в некоторых столбцах фрейма данных на основе содержимого других столбцов. По сути, если строка в столбце_1 == 1, тогда нам нужны данные в той же строке, столбце_2. У меня довольно много значений для поиска, поэтому я сохранил их в словаре, так как это кажется интуитивно понятным способом решения проблемы, но я не могу заставить свои функции придерживаться. Я еще не очень хорошо разбираюсь в функциях ...
Пример ввода:
| patient_id | delirium_date | delirium_sae | syncope_date | syncope_sae | tia_date | tia_sae |
|------------|---------------|--------------|--------------|-------------|------------|---------|
| 1 | 01-08-2020 | 1 | | | | |
| 1 | 03-08-2020 | 0 | | | | |
| 2 | | | 02-08-2020 | 1 | | |
| 2 | | | 02-08-2020 | 1 | | |
| 3 | | | | | 04-08-2020 | 1 |
| 3 | 31-07-2020 | 0 | 01-07-2020 | 0 | 20-07-2020 | 0 |
| 3 | 02-08-2020 | 1 | | | | |
lookup_dictionary = {'delirium_sae' : 'delirium_date',
'syncope_sae' : 'syncope_date',
'tia_sae' : 'tia_date'}
Итак, если какой-либо столбец (dict (keys)) установлен в '1', тогда получите столбец ( dict (values)) Желаемый результат:
| patient_id | delirium_date | syncope_date | tia_date |
|------------|---------------|--------------|------------|
| 1 | 01-08-2020 | | |
| 1 | | | |
| 2 | | 02-08-2020 | |
| 2 | | 02-08-2020 | |
| 3 | | | 04-08-2020 |
| 3 | | | |
| 3 | 02-08-2020 | | |
NB: не нужно сохранять пустые строки Patient_id или пустые столбцы.
Как я уже сказал, я плохо умею использовать функции Так что, если кто-то может провести меня медленно, я должен подумать, когда конструирую его, и, надеюсь, в следующий раз смогу сделать свою собственную ...