Я новичок в Python, и у панд есть CSV-файл с
.----.---------.-------.-------------------.-------------------.-------------------.-------------------.
| id | country | state | cold_stress_score | cold_stress_level | heat_stress_score | heat_stress_level |
:----+---------+-------+-------------------+-------------------+-------------------+-------------------:
| 1 | USA | NJ | 0.003 | low | 0.673 | moderate |
:----+---------+-------+-------------------+-------------------+-------------------+-------------------:
| 2 | USA | NJ | 0.001 | high | 0.2 | high |
:----+---------+-------+-------------------+-------------------+-------------------+-------------------:
| 3 | USA | NJ | 0.004 | moderate | 0.3 | low |
:----+---------+-------+-------------------+-------------------+-------------------+-------------------:
| 4 | USA | NY | 0.005 | moderate | 0.4 | moderate |
:----+---------+-------+-------------------+-------------------+-------------------+-------------------:
| 5 | USA | NY | 0.006 | high | 0.5 | high |
:----+---------+-------+-------------------+-------------------+-------------------+-------------------:
| 6 | USA | NY | 0.009 | low | 0.6 | low |
'----'---------'-------'-------------------'-------------------'-------------------'-------------------'
и я хотел преобразовать это во вложенный способ json
Ожидаемый JSON
{
"id":1,
"country": "USA",
"state": "NJ",
"cold_stress":{
"cold_stress_score" : 0.003,
"cold_stress_level": "low",
},
"heat_stress":{
"heat_stress_score" : 0.0673,
"heat_stress_level": "moderate",
}
}
Я пробовал это решение
Преобразование кадра данных Pandas во вложенный JSON
j = (df.groupby(['id','country','state'], as_index=False)
.apply(lambda x: x[['cold_stress_score','cold_stress_level']].to_dict('r'))
.reset_index()
.rename(columns={0:'cold_stress'})
.to_json(orient='records'))
Я хотел добавить тепловой стресс в JSON
приведенный выше код возвращает
"id":1,
"country": "USA",
"state": "NJ",
"cold_stress":{
"cold_stress_score" : 0.003,
"cold_stress_level": "low",
}
}
как я могу добавить heat_stress, мой csv слишком большой, и я ищу динамическое значение, заполняющее выше, как холодный стресс