Проблемы с преобразованием данных о коморбидности в таблицу с использованием Python и Pandas - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь проанализировать возникновение сопутствующей патологии из набора данных Kaggle в качестве отвратительного тренировочного упражнения. Я смог получить все пятнадцать патологий из набора данных. Однако на данный момент я изо всех сил пытаюсь превратить это в фрейм данных или тому подобное.

В этот момент мои мысли сосредоточены на создании таблицы 15 x 15 с использованием списка заболеваемости. Который я хотел бы использовать для создания диаграммы радиальной сходимости. Тем не менее, я не знаю, как заполнить эту таблицу (или если это даже правильный подход ...).

Может ли кто-то дать мне толчок в правильном направлении, будь то кодирование или названиеэтого типа таблицы?

Original Kaggle;https://www.kaggle.com/nih-chest-xrays/data/kernels

Мой скрипт таким образом;

#Load data
df = pd.read_csv("Data_Entry_2017.csv")

#Filter data
df_filtered = df.iloc[:, 1:6]
df_filtered = df_filtered.drop(df_filtered.columns[[1,2]],axis=1)


#List findings
df_string = df_filtered['Finding Labels']
df_string.str.strip()

findings = []

for finding in df_string:
    finding = finding.split('|')
    for findingX in finding:
        findings.append(findingX)
findingsSolo = list(set(findings))

#df from findings list
df_findings = pd.DataFrame(columns=findingsSolo, index=findingsSolo)

1 Ответ

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

Для тех, кто сталкивался с моим вопросом, после некоторого размышления я нашел решение;

df_findings = pd.DataFrame(columns=findings, index=findings).fillna(0)

for finding in df_string:
    finding = finding.split('|')
    finding.sort()
    if len(finding) > 1:
        col_label = finding[0]
        for row_label in finding[1::]:
            df_findings.loc[row_label,col_label] += 1
...