SQL クエリから次の DataFrame を取得しました。
(Pdb) pp total_rows
ColumnID RespondentCount
0 -1 2
1 3030096843 1
2 3030096845 1
そして、次のようにピボットします。
total_data = total_rows.pivot_table(cols=['ColumnID'])
生成する
(Pdb) pp total_data
ColumnID -1 3030096843 3030096845
RespondentCount 2 1 1
[1 rows x 3 columns]
このデータフレームを辞書に変換すると( を使用total_data.to_dict('records')[0]
)、
{3030096843: 1, 3030096845: 1, -1: 2}
しかし、303 列が整数ではなく文字列としてキャストされるようにして、次の結果を得たいと思います。
{'3030096843': 1, '3030096845': 1, -1: 2}
ベストアンサー1
文字列に変換する方法の一つは、アタイプ:
total_rows['ColumnID'] = total_rows['ColumnID'].astype(str)
しかし、おそらくあなたが探しているのはto_json
関数はキーを有効な JSON に変換します (つまりキーを文字列に変換します)。
In [11]: df = pd.DataFrame([['A', 2], ['A', 4], ['B', 6]])
In [12]: df.to_json()
Out[12]: '{"0":{"0":"A","1":"A","2":"B"},"1":{"0":2,"1":4,"2":6}}'
In [13]: df[0].to_json()
Out[13]: '{"0":"A","1":"A","2":"B"}'
注: 他のオプションとともに、これを保存するバッファ/ファイルを渡すことができます...