2017-09-28 9 views
1

pandasピボットテーブルを使用して以下のようなテーブルを作成しました。パンダのピボットテーブルを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と名前の値を取得する方法がわかりません。 以下のコードを記述しても、必要な結果を得ることはできません。

あなたが DataFrame、その後 DataFrame.to_jsonのための最初の Series.reset_index使用することができます
for data in pd_pivot_table: 
    print(data) # 0.329204 
    print(data["category_id"]) # *** IndexError: invalid index to scalar variable. 

答えて

2

:必要出力をファイルにした場合

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'> 
関連する問題