python - 在 python 中将 Pandas dataframe 转换为 json 的最佳方法

标签 python json pandas dataframe

我正在尝试将 pandas 数据帧转换为 python 中的 json。但我无法获得 json 中想要的结果格式我是 pandas 的新手,有没有一种方法可以进行旋转并简单地使用我能想到的就是一遍又一遍地创建循环来获取关键的“freq”和状态。但我觉得一定有更好的方法。如有任何建议,我们将不胜感激。

json:我想要:

 [
    {State:'AL',freq:{low:4786, mid:1319, high:249}}
    ,{State:'AZ',freq:{low:1101, mid:412, high:674}}
    ,{State:'CT',freq:{low:932, mid:2149, high:418}}
    ,{State:'DE',freq:{low:832, mid:1152, high:1862}}
    ,{State:'FL',freq:{low:4481, mid:3304, high:948}}
    ,{State:'GA',freq:{low:1619, mid:167, high:1063}}
    ,{State:'IA',freq:{low:1819, mid:247, high:1203}}
    ,{State:'IL',freq:{low:4498, mid:3852, high:942}}
    ,{State:'IN',freq:{low:797, mid:1849, high:1534}}
    ,{State:'KS',freq:{low:162, mid:379, high:471}}
    ];

但是我的数据框有 3 列,如下所示:

数据框:我得到

State   type    freq
AZ  low 1101
CT  low 932
DE  low 832
FL  low 4481
GA  low 1619
IA  low 1819
IL  low 4498
IN  low 797
KS  low 162
AZ  mid 412
CT  mid 2149
DE  mid 1152
FL  mid 3304
GA  mid 167
IA  mid 247
IL  mid 3852
IN  mid 1849
KS  mid 379
AZ  high    674
CT  high    418
DE  high    1862
FL  high    948
GA  high    1063
IA  high    1203
IL  high    942
IN  high    1534
KS  high    471

最佳答案

import pandas as pd

data = """\
State   type    freq
AZ  low 1101
CT  low 932
DE  low 832
FL  low 4481
GA  low 1619
IA  low 1819
IL  low 4498
IN  low 797
KS  low 162
AZ  mid 412
CT  mid 2149
DE  mid 1152
FL  mid 3304
GA  mid 167
IA  mid 247
IL  mid 3852
IN  mid 1849
KS  mid 379
AZ  high    674
CT  high    418
DE  high    1862
FL  high    948
GA  high    1063
IA  high    1203
IL  high    942
IN  high    1534
KS  high    471"""

data = pd.DataFrame([line.split() for line in data.splitlines()[1:]],
                    columns=data.splitlines()[0].split())

bystate = data.pivot('State', 'type')

打印

          freq            
   type   high   low   mid
   State                  
   AZ      674  1101   412
   CT      418   932  2149
   DE     1862   832  1152
   FL      948  4481  3304
   GA     1063  1619   167
   IA     1203  1819   247
   IL      942  4498  3852
   IN     1534   797  1849
   KS      471   162   379

获得最终数据帧后,您可以使用 bystate.to_json() 获取 JSON 格式的字符串。

关于python - 在 python 中将 Pandas dataframe 转换为 json 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26665021/

相关文章:

java - 如何将 JSONArray 转换为通用 List<T>?

python - 由于未安装包轮,因此无法构建轮子

python - if语句中 "in"的用法和含义?

python ,Tkinter : How to get coordinates on scrollable canvas

Drupal 7 中的 JSON 提要上下文

python - pandas 内的 np reshape 应用

适用于 Django 1.9 和 Python 3.5 的 Python 连接器?

c# - 将嵌套的json对象反序列化为c#对象

python - Pandas 读取 Excel 或更快的方法

python - 如何用数字关键字字典替换纯数字列? [Python]