2017-09-28 2 views
1

팬다 피봇 테이블을 사용하여 아래 테이블을 생성했습니다.팬더 피벗 테이블을 JSON으로 변환하는 방법

print(pd_pivot_table) 

category_id name 
3   name3  0.329204 
24   name24  0.323727 
31   name31  0.319526 
19   name19  0.008992 
23   name23  0.005897 

이 pivot_table을 기반으로 JSON을 만들고 싶습니다만 어떻게해야할지 모르겠습니다.

[ 
    { 
    "category_id": 3, 
    "name": "name3", 
    "score": 0.329204 
    }, 
    { 
    "category_id": 24, 
    "name": "name24", 
    "score": 0.323727 
    }, 
    { 
    "category_id": 31, 
    "name": "name31", 
    "score": 0.319526 
    }, 
    { 
    "category_id": 19, 
    "name": "name19", 
    "score": 0.008992 
    }, 
    { 
    "category_id": 23, 
    "name": "name23", 
    "score": 0.005897 
    } 
] 

또는 먼저 category_id 및 이름 값을 얻는 방법을 모르겠습니다. 아래 코드를 작성하더라도 원하는 결과를 얻을 수 없습니다.

for data in pd_pivot_table: 
    print(data) # 0.329204 
    print(data["category_id"]) # *** IndexError: invalid index to scalar variable. 

답변

2

당신은 DataFrame에 대한 첫 Series.reset_index 다음 DataFrame.to_json 사용할 수 있습니다 : 필요 출력 파일에 경우

print (df) 
category_id name 
3   name3  0.329204 
24   name24 0.323727 
31   name31 0.319526 
19   name19 0.008992 
23   name23 0.005897 
Name: score, dtype: float64 

print (type(df)) 
<class 'pandas.core.series.Series'> 

json = df.reset_index().to_json(orient='records') 
print (json) 
[{"category_id":3,"name":"name3","score":0.329204}, 
{"category_id":24,"name":"name24","score":0.323727}, 
{"category_id":31,"name":"name31","score":0.319526}, 
{"category_id":19,"name":"name19","score":0.008992}, 
{"category_id":23,"name":"name23","score":0.005897}] 

을 :

df.reset_index().to_json('file.json',orient='records') 

세부을 :

print (df.reset_index()) 
    category_id name  score 
0   3 name3 0.329204 
1   24 name24 0.323727 
2   31 name31 0.319526 
3   19 name19 0.008992 
4   23 name23 0.005897 

print (type(df.reset_index())) 
<class 'pandas.core.frame.DataFrame'> 
,691,363 210
관련 문제