我有一個資料框如下:
| 緯度 | 長 | 城市 | 名稱疾病 | 數例 |
|---|---|---|---|---|
| 0 | 2 | 里約 | 登革熱 | 1 |
| 0 | 2 | 里約 | 奇昆古尼亞 | 2 |
| 1 | 3 | sp | 登革熱 | 3 |
| 1 | 3 | sp | 冠狀病毒病 | 4 |
我想聚合具有相同 (lat,long,city) 的行并生成一個 json,如下所示:
[{lat:0,long:2,city:"rio",diseases:[{nameDisease:"Dengue",numberCases:1},{nameDisease:"Chicungunha",numberCases:2}],{lat:1,long:3,city:"sp",diseases:[{nameDisease:"Dengue",numberCases:3},{nameDisease:"COVID",numberCases:4}]]
我怎樣才能用熊貓做這種轉換?
uj5u.com熱心網友回復:
幾個to_dict groupby電話:
json = df.groupby(cols).apply(lambda g: g.drop(cols, axis=1).to_dict('records')).reset_index().rename({0:'diseases'}, axis=1).to_dict('records')
輸出:
>>> json
[{'lat': 0,
'long': 2,
'city': 'rio',
'diseases': [{'nameDisease': 'Dengue', 'numberCases': 1},
{'nameDisease': 'Chicungunha', 'numberCases': 2}]},
{'lat': 1,
'long': 3,
'city': 'sp',
'diseases': [{'nameDisease': 'Dengue', 'numberCases': 3},
{'nameDisease': 'COVID', 'numberCases': 4}]}]
>>> json == expected_output
True
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/486604.html
下一篇:顯示列中的特定1值
