Pandas 데이터 프레임에서 중첩 된 json 배열을 확장하려고합니다.
그것이 내가 가진 JSON입니다.
[ {
"id": "0001",
"name": "Stiven",
"location": [{
"country": "Colombia",
"department": "Chocó",
"city": "Quibdó"
}, {
"country": "Colombia",
"department": "Antioquia",
"city": "Medellin"
}, {
"country": "Colombia",
"department": "Cundinamarca",
"city": "Bogotá"
}
]
}, {
"id": "0002",
"name": "Jhon Jaime",
"location": [{
"country": "Colombia",
"department": "Valle del Cauca",
"city": "Cali"
}, {
"country": "Colombia",
"department": "Putumayo",
"city": "Mocoa"
}, {
"country": "Colombia",
"department": "Arauca",
"city": "Arauca"
}
]
}, {
"id": "0003",
"name": "Francisco",
"location": [{
"country": "Colombia",
"department": "Atlántico",
"city": "Barranquilla"
}, {
"country": "Colombia",
"department": "Bolívar",
"city": "Cartagena"
}, {
"country": "Colombia",
"department": "La Guajira",
"city": "Riohacha"
}
]
}
]
그것이 내가 가진 데이터 프레임입니다.
index id name location
0 0001 Stiven [{'country':'Colombia', 'department': 'Chocó', 'city': 'Quibdó'}, {'country':'Colombia', 'department': 'Antioquia', 'city': 'Medellin'}, {'country':'Colombia', 'department': 'Cundinamarca', 'city': 'Bogotá'}]
1 0002 Jhon Jaime [{'country':'Colombia', 'department': 'Valle del Cauca', 'city': 'Cali'}, {'country':'Colombia', 'department': 'Putumayo', 'city': 'Mocoa'}, {'country':'Colombia', 'department': 'Arauca', 'city': 'Arauca'}]
2 0003 Francisco [{'country':'Colombia', 'department': 'Atlántico', 'city': 'Barranquilla'}, {'country':'Colombia', 'department': 'Bolívar', 'city': 'Cartagena'}, {'country':'Colombia', 'department': 'La Guajira', 'city': 'Riohacha'}]
다음과 같이 ID 당 데이터 프레임으로 변환해야합니다.
index id name country department city
0 0001 Stiven Colombia Chocó Quibdó
1 0001 Stiven Colombia Antioquia Medellin
2 0001 Stiven Colombia Cundinamarca Bogotá
3 0002 Jhon Jaime Colombia Valle del Cauca Cali
4 0002 Jhon Jaime Colombia Putumayo Mocoa
5 0002 Jhon Jaime Colombia Arauca Arauca
6 0003 Francisco Colombia Atlántico Barranquilla
7 0003 Francisco Colombia Bolívar Cartagena
8 0003 Francisco Colombia La Guajira Riohacha
미리 감사드립니다.
JSON
파일 사용에서로드되고 json.loads
있지만,이 경우 JSON
API를 직접, 그것은 필요하지 않을 수도있다.pandas.json_normalize
와 함께 사용 하여을 DataFrame meta
으로 변환합니다 JSON
.import pandas as pd
from pathlib import Path
import json
# path to file
p = Path(r'c:\path_to_file\test.json')
# read json
with p.open('r', encoding='utf-8') as f:
data = json.loads(f.read())
# create dataframe
df = pd.json_normalize(data, record_path='location', meta=['id', 'name'])
# output
country department city id name
Colombia Chocó Quibdó 0001 Stiven
Colombia Antioquia Medellin 0001 Stiven
Colombia Cundinamarca Bogotá 0001 Stiven
Colombia Valle del Cauca Cali 0002 Jhon Jaime
Colombia Putumayo Mocoa 0002 Jhon Jaime
Colombia Arauca Arauca 0002 Jhon Jaime
Colombia Atlántico Barranquilla 0003 Francisco
Colombia Bolívar Cartagena 0003 Francisco
Colombia La Guajira Riohacha 0003 Francisco
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다