#python #json #pandas
Вопрос:
Я прочитал файл JSON, в котором перечислены пациенты с COVID-19, называемые контентом. Я хочу преобразовать файл в фрейм данных pandas, чтобы я мог анализировать его с помощью Python. К сожалению, файл находится в нескольких словарях.
содержимое выглядит следующим образом
[{'id': 'from_manual_250627',
'kode_kab': '3204',
'nama_kab': 'Kabupaten Bandung',
'kode_kec': '3204130',
'nama_kec': 'Ciparay',
'kode_kel': '3204130005',
'nama_kel': 'Manggungharja',
'status': 'CONFIRMATION',
'stage': 'Selesai',
'umur': 29.0,
'gender': 'Laki-laki',
'longitude': 107.698,
'latitude': -7.045,
'tanggal_konfirmasi': '2021-03-30',
'tanggal_update': '2021-05-10',
'current_location_type': 'Rumah Sakit Umum Daerah Al Ihsan',
'current_location_district_code': None,
'current_location_subdistrict_code': None,
'current_location_village_code': None,
'current_location_address': None,
'report_source': None,
'tanggal_update_nasional': '2021-04-01'},
{'id': 'from_manual_170876',
'kode_kab': '3204',
'nama_kab': 'Kabupaten Bandung',
'kode_kec': '3204',
'nama_kec': 'Lembursitu',
'kode_kel': '3204',
'nama_kel': 'Lembursitu',
'status': 'CONFIRMATION',
'stage': 'Selesai',
'umur': 45.0,
'gender': 'Perempuan',
'longitude': 107.611,
'latitude': -7.1,
'tanggal_konfirmasi': '2021-02-09',
'tanggal_update': '2021-03-01',
'current_location_type': 'Rumah Sakit Umum Daerah Al Ihsan',
'current_location_district_code': None,
'current_location_subdistrict_code': None,
'current_location_village_code': None,
'current_location_address': None,
'report_source': None,
'tanggal_update_nasional': '2021-02-11'},
{'id': 'from_manual_171165',
'kode_kab': '3204',
'nama_kab': 'Kabupaten Bandung',
'kode_kec': '3204',
'nama_kec': 'Purwakarta',
'kode_kel': '3204',
'nama_kel': 'Munjuljaya',
'status': 'CONFIRMATION',
'stage': 'Selesai',
'umur': 20.0,
'gender': 'Perempuan',
'longitude': 107.611,
'latitude': -7.1,
'tanggal_konfirmasi': '2021-02-08',
'tanggal_update': '2021-03-01',
'current_location_type': 'Rumah Sakit Umum Daerah Al Ihsan',
'current_location_district_code': None,
'current_location_subdistrict_code': None,
'current_location_village_code': None,
'current_location_address': None,
'report_source': None,
'tanggal_update_nasional': '2021-02-11'},
Если я запущу этот код
for dict in content:
print(dict)
Результат выглядит следующим образом
{'id': 'from_manual_250627', 'kode_kab': '3204', 'nama_kab': 'Kabupaten Bandung', 'kode_kec': '3204130', 'nama_kec': 'Ciparay', 'kode_kel': '3204130005', 'nama_kel': 'Manggungharja', 'status': 'CONFIRMATION', 'stage': 'Selesai', 'umur': 29.0, 'gender': 'Laki-laki', 'longitude': 107.698, 'latitude': -7.045, 'tanggal_konfirmasi': '2021-03-30', 'tanggal_update': '2021-05-10', 'current_location_type': 'Rumah Sakit Umum Daerah Al Ihsan', 'current_location_district_code': None, 'current_location_subdistrict_code': None, 'current_location_village_code': None, 'current_location_address': None, 'report_source': None, 'tanggal_update_nasional': '2021-04-01'}
{'id': 'from_manual_170876', 'kode_kab': '3204', 'nama_kab': 'Kabupaten Bandung', 'kode_kec': '3204', 'nama_kec': 'Lembursitu', 'kode_kel': '3204', 'nama_kel': 'Lembursitu', 'status': 'CONFIRMATION', 'stage': 'Selesai', 'umur': 45.0, 'gender': 'Perempuan', 'longitude': 107.611, 'latitude': -7.1, 'tanggal_konfirmasi': '2021-02-09', 'tanggal_update': '2021-03-01', 'current_location_type': 'Rumah Sakit Umum Daerah Al Ihsan', 'current_location_district_code': None, 'current_location_subdistrict_code': None, 'current_location_village_code': None, 'current_location_address': None, 'report_source': None, 'tanggal_update_nasional': '2021-02-11'}
{'id': 'from_manual_171165', 'kode_kab': '3204', 'nama_kab': 'Kabupaten Bandung', 'kode_kec': '3204', 'nama_kec': 'Purwakarta', 'kode_kel': '3204', 'nama_kel': 'Munjuljaya', 'status': 'CONFIRMATION', 'stage': 'Selesai', 'umur': 20.0, 'gender': 'Perempuan', 'longitude': 107.611, 'latitude': -7.1, 'tanggal_konfirmasi': '2021-02-08', 'tanggal_update': '2021-03-01', 'current_location_type': 'Rumah Sakit Umum Daerah Al Ihsan', 'current_location_district_code': None, 'current_location_subdistrict_code': None, 'current_location_village_code': None, 'current_location_address': None, 'report_source': None, 'tanggal_update_nasional': '2021-02-11'}
Как я могу преобразовать его в фрейм данных pandas и использовать ключ словаря в качестве имени столбца?
Ответ №1:
Если ваша структура данных представляет собой список словарей, просто сделайте это:
import pandas as pd
list_of_dicts = [{'id': 'from_manual_250627', 'kode_kab': '3204', 'nama_kab': 'Kabupaten Bandung', 'kode_kec': '3204130', 'nama_kec': 'Ciparay', 'kode_kel': '3204130005', 'nama_kel': 'Manggungharja', 'status': 'CONFIRMATION', 'stage': 'Selesai', 'umur': 29.0, 'gender': 'Laki-laki', 'longitude': 107.698, 'latitude': -7.045, 'tanggal_konfirmasi': '2021-03-30', 'tanggal_update': '2021-05-10', 'current_location_type': 'Rumah Sakit Umum Daerah Al Ihsan', 'current_location_district_code': None, 'current_location_subdistrict_code': None, 'current_location_village_code': None, 'current_location_address': None, 'report_source': None, 'tanggal_update_nasional': '2021-04-01'}, {'id': 'from_manual_170876', 'kode_kab': '3204', 'nama_kab': 'Kabupaten Bandung', 'kode_kec': '3204', 'nama_kec': 'Lembursitu', 'kode_kel': '3204', 'nama_kel': 'Lembursitu', 'status': 'CONFIRMATION', 'stage': 'Selesai', 'umur': 45.0, 'gender': 'Perempuan', 'longitude': 107.611, 'latitude': -7.1, 'tanggal_konfirmasi': '2021-02-09', 'tanggal_update': '2021-03-01', 'current_location_type': 'Rumah Sakit Umum Daerah Al Ihsan', 'current_location_district_code': None, 'current_location_subdistrict_code': None, 'current_location_village_code': None, 'current_location_address': None, 'report_source': None, 'tanggal_update_nasional': '2021-02-11'}, {'id': 'from_manual_171165', 'kode_kab': '3204', 'nama_kab': 'Kabupaten Bandung', 'kode_kec': '3204', 'nama_kec': 'Purwakarta', 'kode_kel': '3204', 'nama_kel': 'Munjuljaya', 'status': 'CONFIRMATION', 'stage': 'Selesai', 'umur': 20.0, 'gender': 'Perempuan', 'longitude': 107.611, 'latitude': -7.1, 'tanggal_konfirmasi': '2021-02-08', 'tanggal_update': '2021-03-01', 'current_location_type': 'Rumah Sakit Umum Daerah Al Ihsan', 'current_location_district_code': None, 'current_location_subdistrict_code': None, 'current_location_village_code': None, 'current_location_address': None, 'report_source': None, 'tanggal_update_nasional': '2021-02-11'}]
df = pd.DataFrame(list_of_dicts)