朋友们,支持我的观点。我有这样一个数据帧:
+-------+--------------------------+------+-------+------+
| 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 |
+-------+--------------------------+------+-------+------+
每个专业有多个条目——即我有专业X代码的计数和等级,最高等级为25
我尝试使用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}
]
}
]
您发布的结果将不起作用,因为它包含重复的键。下面的解决方案可能正是您想要的,因为它使代码秩对可以从字典中调用
这一级在主级特性下创建另一个字典级,其中代码和秩对位于数组中的同一索引上:
或者下一个简单地从groupby获取结果,并将其放置在密钥代码\u rank\u对下:
相关问题 更多 >
编程相关推荐