Поддержите меня на bs, друзья. У меня есть такой фрейм данных:
+-------+--------------------------+------+-------+------+
| index | specialty | code | count | rank |
+-------+--------------------------+------+-------+------+
| 19 | Colon and Rectal Surgery | 1557 | 36 | 5.0 |
+-------+--------------------------+------+-------+------+
| 22 | Surgical Oncology | 1557 | 22 | 14.0 |
+-------+--------------------------+------+-------+------+
| 147 | Hematology | 2057 | 383 | 13.0 |
+-------+--------------------------+------+-------+------+
| 753 | Oncology | 1578 | 74 | 15.0 |
+-------+--------------------------+------+-------+------+
| 1089 | Dental General Practice | 1257 | 6 | 2.5 |
+-------+--------------------------+------+-------+------+
Есть несколько записей для каждой специальности - ie У меня есть количество и ранг кодов для специальности X до 25-го ранга.
I Я пытаюсь использовать функцию lamba для группировки по специальности, но я не могу понять, как добавить столбцы в качестве ключей / значений и создать список dict, а не просто гигантский dict.
d = (df2.groupby('specialty').apply(lambda x: dict(zip(x['code'], x['Rank']))).to_dict())
print(d)
{'Acute Care Hospital': {
1562: 8.0,
1554: 11.0,
6095: 8.0,
119114: 1.0,
119117: 5.5,
284051: 4.0,
562577: 11.0,
582646: 8.0,
1631305: 2.0,
1641114: 5.5,
1751592: 3.0,
1873207: 11.0
}
Как мне сохранить столбцы в виде ключей, и это будет список по специальности:
[
{'specialty': Acute Care Hospital',
[
{'code': 1562, 'rank': 8.0,
'code': 1554, 'rank' :11.0,
'code': 6095, 'rank': 8.0,
'code': 119114, 'rank' 1.0,
'code': 119117, 'rank': 5.5,
'code': 284051, 'rank': 4.0,
'code': 562577, 'rank': 11.0,
'code': 582646, 'rank' 8.0,
'code': 1631305, 'rank': 2.0,
'code': 1641114, 'rank': 5.5,
'code': 1751592, 'rank': 3.0,
'code': 1873207, 'rank': 11.0}
]
}
]