Мне дали тупой CSV с примерно 20 000 строк данных, относящихся только к ~ 300 случаям, поэтому я хотел попробовать сгруппировать вещи так, чтобы это имело больший смысл, поэтому у меня теперь есть текстовый файл с 300 случаями, образец двух из них ниже:
[{"Обработка": [""], "Год": "2004", "Причина": "Преднамеренное / предполагаемое самоубийство", "CaseNumber": "9999", "OutCome": "Незначительный эффект", «Симптомы»: [«Сонный / вялый / связанный»], «case_drugs»: [{«Substance»: «RIVOTRIL», «Poisindex_Desc»: «BENZODIAZEPINE», «SubstanceFormula_20c»: «LIQUID», «SubstanceProductCode:» "," RouteExp ":" INGEST "," SubstanceGeneric_AAPCC_Code ":" 999 "}, {" Substance ":" HYDROMORPHONE X 15 SYRINGES 6 MG EA "," Poisindex_Desc ":" HYDROMORPHONE "," SubstanceForm ": L_ "SubstanceProductCode": "9999", "RouteExp": "INGEST", "SubstanceGeneric_AAPCC_Code": "9999"}], "Acuity": "Acute", "AgeGroup": "90-99 лет", "SEX": " Зойдберг "},
{"Обработка": ["Активированный уголь однократной дозы", "Жидкости для внутривенных вливаний"], "Год": "2006", "Причина": "Непреднамеренный / общий", "CaseNumber": "8888", "OutCome": " Возможны минимальные клинические эффекты "," Симптомы ": [" "]," case_drugs ": [{" Substance ":" LOPERAMIDE 2MG X 1/2 "," Poisindex_Desc ":" LOPERAMIDE "," SubstanceFormula_20c ":" SOLID (ТАБЛЕТКИ) / CAPSULES / CAPLETS) "," SubstanceProductCode ":" 88 "," RouteExp ":" INGEST "," SubstanceGeneric_AAPCC_Code ":" 88 "}]," Acuity ":" Acute "," AgeGroup ":" L5 yrs ", "SEX": "F"}]
Что-то вроде «Год» имеет только 1 значение для каждого случая. «Симптомы» имеют список значений, а «case_drugs» имеет список слов. Этот формат имеет для меня большой смысл, поскольку у одного человека может быть несколько препаратов, и у каждого препарата есть несколько атрибутов, связанных с ним. На самом деле я не хочу сглаживать данные, потому что в переменной с данными о наркотиках не существует максимального количества записей, поэтому возможно, что если у меня будет значение «препарат1, препарат2, препарат3», то в следующий раз, когда я получу данные, придется добавить «drug4».
В настоящее время я могу загрузить файл в панды и проанализировать большую его часть. Что касается значений списка, я наткнулся на другой пост обмена стека, в котором предлагалось использовать это:
df['Symptoms'].apply(lambda x: pd.Series(x).value_counts()).sum()
Это прекрасно работает. Я уверен, что могу выяснить, как сделать другой анализ с помощью аналогичного метода. Я до сих пор не уверен, как я буду анализировать переменную case_drugs. Я могу создавать свои собственные функции для циклического просмотра и чтения данных, но мне было интересно, есть ли в пандах существующая функциональность, которая сможет это сделать. Например, что если бы я хотел посчитать, сколько раз RIVOTRIL показывался в значении «вещество» переменной «case_drugs»?
Или, если вы считаете, что мне лучше хранить данные другим способом, это также будет приемлемым ответом!
Спасибо