熊猫数据框到 json 列表格式

Posted

技术标签:

【中文标题】熊猫数据框到 json 列表格式【英文标题】:Pandas dataframe to json list format 【发布时间】:2017-08-25 08:50:57 【问题描述】:

我有大熊猫表格数据框可以转换成 JSON。 标准的 .to_json() 函数不会为 JSON 提供紧凑的格式。 如何获得这样的 JSON 输出格式,仅使用 pandas ?

"index": [ 0, 1 ,3 ],
 "col1": [ "250", "1" ,"3" ],
 "col2": [ "250", "1" ,"3" ]

这是一种非常紧凑的 JSON 格式,用于表格数据。 (我可以在行上循环......但是)

【问题讨论】:

【参考方案1】:

看来你首先需要to_dict,然后是dictjson

df = pd.DataFrame("index": [ 0, 1 ,3 ],
 "col1": [ "250", "1" ,"3" ],
 "col2": [ "250", "1" ,"3" ]
)
print (df)
  col1 col2  index
0  250  250      0
1    1    1      1
2    3    3      3


print (df.to_dict(orient='list'))
'col1': ['250', '1', '3'], 'col2': ['250', '1', '3'], 'index': [0, 1, 3]

import json

print (json.dumps(df.to_dict(orient='list')))
"col1": ["250", "1", "3"], "col2": ["250", "1", "3"], "index": [0, 1, 3]

因为不是implemented yet:

print (df.to_json(orient='list'))

ValueError:选项“orient”的值“list”无效

编辑:

如果索引不是列,则添加reset_index

df = pd.DataFrame("col1": [250, 1, 3],
                   "col2": [250, 1, 3])
print (df)
   col1  col2
0   250   250
1     1     1
2     3     3

print (df.reset_index().to_dict(orient='list'))
'col1': [250, 1, 3], 'index': [0, 1, 2], 'col2': [250, 1, 3]

【讨论】:

你总是更快;-)【参考方案2】:

您可以使用to_dictjson(如果需要,可以通过assign 添加index 作为额外列):

import json

df = pd.DataFrame("col1": [250, 1, 3],
                   "col2": [250, 1, 3])

json_dict = df.assign(index=df.index).to_dict(orient="list")
print(json.dumps(json_dict))

>>> '"index": [0, 1, 2], "col1": [250, 1, 3], "col2": [250, 1, 3]'

【讨论】:

以上是关于熊猫数据框到 json 列表格式的主要内容,如果未能解决你的问题,请参考以下文章

具有多个键的熊猫数据框到 json

Pandas 数据框到烧瓶模板作为 json [重复]

多索引熊猫数据框到字典

熊猫数据框到字典

从火花数据框到熊猫数据框

熊猫数据框到 csv 导出问题