팬더 데이터 프레임에 JSON 읽기 - ValueError: dicts를 비시리즈와 함께 사용하면 순서가 애매해질 수 있습니다.
아래 JSON 구조에서 panda 데이터 프레임을 읽으려고 하는데 오류 메시지가 사라집니다.
Value Error: dicts를 비시리즈와 혼재시키면 순서가 애매해질 수 있습니다.
Json 데이터:
{
"status": {
"statuscode": 200,
"statusmessage": "Everything OK"
},
"result": [{
"id": 22,
"club_id": 16182
}, {
"id": 23,
"club_id": 16182
}, {
"id": 24,
"club_id": 16182
}, {
"id": 25,
"club_id": 16182
}, {
"id": 26,
"club_id": 16182
}, {
"id": 27,
"club_id": 16182
}]
}
이걸 어떻게 맞추죠?아래 대본을 써봤는데...
j_df = pd.read_json('json_file.json')
j_df
with open(j_file) as jsonfile:
data = json.load(jsonfile)
데이터 프레임의 결과 부분만 필요한 경우, 여기에 도움이 되는 코드가 있습니다.
import json
import pandas as pd
data = json.load(open('json_file.json'))
df = pd.DataFrame(data["result"])
와 함께 사용할 수 있습니다.
from pandas.io.json import json_normalize
import json
with open('json_file.json') as data_file:
d= json.load(data_file)
df = json_normalize(d, 'result').assign(**d['status'])
print (df)
club_id id statuscode statusmessage
0 16182 22 200 Everything OK
1 16182 23 200 Everything OK
2 16182 24 200 Everything OK
3 16182 25 200 Everything OK
4 16182 26 200 Everything OK
5 16182 27 200 Everything OK
데이터 프레임의 결과 부분만 필요한 경우 다음 코드를 참조하십시오.
import json
import pandas as pd
data = json.load(open('json_file.json'))
df = pd.DataFrame(data["result"])
제가 알기로는 ValueError는 데이터 유형이 곳곳에 있기 때문에 발생합니다. 일부 문자열, 일부 목록, 다중 {} 등입니다.이 오류는 데이터를 정규화함으로써 해결할 수 있습니다.그러기 위해서는, 다음의 코드를 참조해 주세요.
import json
with open('json_file.json') as project_file:
data = json.load(project_file)
df = pd.json_normalize(data)
팬더 데이터 프레임은 루트 레벨의 리스트가 되길 원하는 것 같습니다.데이터를 목록에 넣기만 하면 됩니다.
with open(j_file) as jsonfile:
data = json.load(jsonfile)
df = pd.DataFrame([data])
그json_normalize
유효한 어프로치입니다만, 제 사용 예에서는, 오리지날 딕트와 어레이를 모두 데이터 프레임에 보관해 둘 필요가 있었습니다.또, 그 어프로치를 사용했습니다.
input_df = pd.read_json(input_path, lines=True, orient="columns")
단, 파일은 새로운 행으로 구분된json 형식(파일 내의 각 행에1개의 json 문서)이어야 합니다.따라서 다음과 같이 표시됩니다(사용했습니다).jq -c
한 줄로 변환합니다).
{"status":{"statuscode":200,"statusmessage":"Everything OK"},"result":[{"id":22,"club_id":16182},{"id":23,"club_id":16182},{"id":24,"club_id":16182},{"id":25,"club_id":16182},{"id":26,"club_id":16182},{"id":27,"club_id":16182}]}
언급URL : https://stackoverflow.com/questions/49505872/read-json-to-pandas-dataframe-valueerror-mixing-dicts-with-non-series-may-lea
'source' 카테고리의 다른 글
Spring Boot 어플리케이션은 Tomcat에 도입했을 때 404를 제공하지만 임베디드 서버와 연동됩니다. (0) | 2023.03.21 |
---|---|
사용자가 편집기 자체를 사용하여 새 카테고리를 추가한 경우 사용자 정의 구성 요소에서 사용되는 카테고리 목록을 새로 고칠 수 있는 방법이 있습니까? (0) | 2023.03.21 |
반응-원어민 버튼 스타일이 작동하지 않음 (0) | 2023.03.16 |
"-" 대시로 JSON 속성에 액세스할 수 없습니다. (0) | 2023.03.16 |
Angular JS의 지시어 템플릿 내에서 "ng-repeat"을 사용하는 방법은 무엇입니까? (0) | 2023.03.16 |