2017-12-27 3 views
2

나는이팬더 : 별도의 열에 표시 중첩 된 사전 값은

[ 
    { 
    "detail": { 
    "name": "boo", 
    "id": 1 
    }, 
    "other": { 
     "gender": "m", 
     "no": "234" 
    } 
    }, 
    { 
    "detail": { 
     "name": "hoo", 
     "id": 2 
    }, 
    "other": { 
     "gender": "f", 
     "no": "456" 
    } 
    } 
] 

같은 사전 무언가의 목록을 가지고 그리고 난 다음 형식

detail   other 
name id gender no 
boo 1  m  234 
hoo 2  f  456 

에서 엑셀 파일에 데이터를 인쇄 할 간단히 말해 부모 키 열 아래의 열에 중첩 값을 표시하려고합니다. 나는 팬더를 사용하여 이것을 어떻게 얻을 수 있습니까?

팬더가 조용한 무거운 하나이기 때문에 나는 이것을 달성 할 수있는 다른 라이브러리입니다.

답변

1

사용 pd.io.json.json_normalize -

df = pd.io.json.json_normalize(data) 

이이처럼 보이는 열 이름 결과 -

i = list(map(tuple, df.columns.str.split('.'))) 
- 우리는 df.columns.str.split를 사용하여 MultiIndex이를 변환해야합니다
df.columns 
Index(['detail.id', 'detail.name', 'other.gender', 'other.no'], dtype='object') 

pd.MultiIndex.from_tuples으로 전화하여 결과를 지정하십시오. 다시 - 데이터가 더 복잡한 경우

df.columns = pd.MultiIndex.from_tuples(i) 
df 

    detail  other  
     id name gender no 
0  1 boo  m 234 
1  2 hoo  f 456 

, 당신은 열을 추가 sort_index 통화를 할 수 있습니다 -

df = df.sort_index(axis=1) 
+1

Niceee을 ... 정말 감사합니다. –