프로그래밍 공부/보면 도움이 될걸?!

[오류해결] ValueError: Mixing dicts with non-Series may lead to ambiguous ordering

조녁 2022. 6. 14. 01:57
반응형

 

 

 

안녕하세요~! 

28년차 진로탐색꾼 조녁입니다!

 

순서 및 내용은 아래와 같습니다.

 

1. 상황 이해 : 어떤 에러메시지이며, 어떤 상황에서 발생했는 지 기록

2. 해결 방법 : 해결 성공여부를 떠나 시도한 방법들 순서대로 정리

3. 얻은 인사이트 : 해결해가는 과정에서 배운내용들

 

1. 상황 이해

  • the ValueError occurs because the data types are all over the place, some strings, some lists, multiple {} etc.
  • 데이터 정리 후 dataframe을 json으로 저장하고 불러오는 상황에서 발생함
train_df.to_json('path/file.json', orient='table')

 

 

2. 해결 방법

  • This error may be solved by normalizing the data.

Read JSON to pandas dataframe - ValueError: Mixing dicts with non-Series may lead to ambiguous ordering

 

Read JSON to pandas dataframe - ValueError: Mixing dicts with non-Series may lead to ambiguous ordering

I am trying to read in the JSON structure below into pandas dataframe, but it throws out the error message: ValueError: Mixing dicts with non-Series may lead to ambiguous ordering. Json data...

stackoverflow.com

from pandas.io.json import json_normalize
import json

with open('json_file.json') as f:    
    d= json.load(f)  

df = json_normalize(d, 'data'))

 

  • 만약 data부분만 필요하다면 아래와 같이 그 부분만 가져올 수 있다. (하지만 파일이 바뀌진 않음)
import json
import pandas as pd

data = json.load(open('json_file'))

df = pd.DataFrame(data["data"])
print(df)

 

  • 그냥 애초에 dataframe을 json으로 저장할때 orient 옵션을 ‘columns’로 주면 된다.
df.to_json('path/file.json', orient='columns')

 

3. 얻은 인사이트

  • json file 형태에 대해서 더 공부했다.
  • df to json 저장할때 oreient 인자가 있음을 인지하게됐다.
반응형