Соотношение в 2 разных столбцах данных - PullRequest
0 голосов
/ 08 октября 2019

После лечения первой линией лечения, которая может быть A, B, C (Код лекарства), какая доля всех больных раком будет проходить лечение второй линией лечения?

Я являюсьзапутался, как найти это.

Как мне найти это через цикл for? Кто-нибудь покажет мне код для этого? Я тоже застрял там.

Я пытался реализовать код, который вставил ниже

for i in q1b['PatientID']:
#here every patient ID of dataset(q1b) should go through dataset2 patient drugcode
 dataset2['DrugCode']
 #Now i need to find proportion like if some patient was treating for A then if drug a didnt work how many patients went for B as asked in question.i tried running loop i think we need nested loop

ОЖИДАЕМЫЙ ВЫХОД:

КАК У меня есть 29 ПАЦИЕНТОВ В ДАННЫХ (q1b)) Я хочу найти пропорциональную пропорцию, например, сколько пациентов обращаются за 2-й линией лечения от кода лекарственного средства A к B. Предположим, есть 3 пациента, которые обращались за лекарственным кодом с кодами от A до B, поэтому пропорция будет равна 3/29 * 100, как показано ниже. ожидаемый ожидаемый результат. изображение набора данных

1 Ответ

0 голосов
/ 08 октября 2019

Так что, если я вас правильно понимаю, вы хотите узнать процент пациентов, которые получили препарат А, которые также получали препарат В. Если это так, вы могли бы сделать что-то вроде

codes = df.groupby('PatientID').apply(lambda x: set(x['DrugCode']))
codes[codes.apply(lambda x: 'A' in x)].apply(lambda x: 'B' in x).mean() * 100

Если, кроме того,, вы можете предположить, что каждый пациент начинает с 'A', это сводится к

df.groupby('PatientID').apply(lambda x: 'B' in x['DrugCode'].values).mean() * 100
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...