У меня есть следующий список Series.
[LVH = 0 63 (88.73 %)
LVH = 1 6 (8.45 %)
LVH = 2 1 (1.41 %)
LVH = 3 1 (1.41 %)
dtype: object, LV diastolic dysfunction (guideline) = 0 60 (84.51 %)
LV diastolic dysfunction (guideline) = 1 8 (11.27 %)
LV diastolic dysfunction (guideline) = 4 3 (4.23 %)
dtype: object, LV diastolic dysfunction grade (formula) = 0.0 60 (84.51 %)
LV diastolic dysfunction grade (formula) = 1.0 4 (5.63 %)
LV diastolic dysfunction grade (formula) = 3.0 4 (5.63 %)
LV diastolic dysfunction grade (formula) = 4.0 3 (4.23 %)
dtype: object, LV filling pressure(formula) = 0 67 (94.37 %)
LV filling pressure(formula) = 1 4 (5.63 %)
dtype: object, cause of hospitalization = 8 2 (2.82 %)
cause of hospitalization = 1 43 (60.56 %)
cause of hospitalization = 2 21 (29.58 %)
cause of hospitalization = 3 1 (1.41 %)
cause of hospitalization = 6 4 (5.63 %)
dtype: object, simplfied cause of hospitalization = 1 43 (60.56 %)
simplfied cause of hospitalization = 2 22 (30.99 %)
simplfied cause of hospitalization = 3 4 (5.63 %)
simplfied cause of hospitalization = 5 2 (2.82 %)
dtype: object, ACC/AHA = A 10 (14.08 %)
ACC/AHA = 0 56 (78.87 %)
ACC/AHA = C 2 (2.82 %)
ACC/AHA = B 3 (4.23 %)
dtype: object, ACC-AHA -binary = 0 69 (97.18 %)
ACC-AHA -binary = 1 2 (2.82 %)
dtype: object, NYHA = I 65 (91.55 %)
NYHA = II 2 (2.82 %)
NYHA = III 4 (5.63 %)
dtype: object, NYHA-binary = 0 66 (92.96 %)
NYHA-binary = 1 5 (7.04 %)
dtype: object]
Для каждого элемента списка, т. Е. Series, мне нужно преобразовать их в кадр данных с двумя столбцами.Например, это должно выглядеть следующим образом:
Column 1 Column 2
LVH = 0 63 (88.73 %)
LVH = 1 6 (8.45 %)
LVH = 2 1 (1.41 %)
LVH = 3 1 (1.41 %)
LV diastolic dysfunction (guideline) = 0 60 (84.51 %)
LV diastolic dysfunction (guideline) = 1 8 (84.51 %)
LV diastolic dysfunction (guideline) = 4 3 (84.51 %)
...
и так далее.Затем он будет преобразован в формат CSV для загрузки пользователями.Я просто использовал базовый pd.DataFrame
, а также pd.DataFrame.from_items
.Первый преобразует его в dataframe, но не так, как я хотел.Второй дает ошибки, но я не думаю, что это будет полезно в любом случае.Как я могу решить это?
ОБНОВЛЕНИЕ
categorical_vars_multi_class = ['LVH','LV diastolic dysfunction (guideline)','LV diastolic dysfunction grade (formula)','LV filling pressure(formula)','cause of hospitalization','simplfied cause of hospitalization','ACC/AHA','ACC-AHA -binary','NYHA','NYHA-binary']
def getMultiClassData(index,table, prop):
tab = pd.Series()
for i in range(len(table)):
tab_str = str(table[i]) + " (" + str(prop[i]) + " %)"
tab = tab.set_value(i,tab_str)
tab.index = index
return(tab)
def getMultiClassTable(data,name):
table = pd.value_counts(data[name].values, sort=False)
table.index = [name + ' = ' + str(x) for x in table.index]
prop = (table/table.sum() * 100).round(2)
return(getMultiClassData(table.index,table.values, prop))
m_cluster_1 = [getMultiClassTable(data,x) for x in categorical_vars_multi_class]
data
- это кадр данных с именами столбцов и измерениями для переменной.Набор данных огромен и чувствителен.