python – 将数据帧输出到json数组
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 将数据帧输出到json数组,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2690字,纯文字阅读大概需要4分钟。
内容图文
我想知道是否有更有效的方法来执行以下操作.
# transforms datetime into timestamp in seconds
t = df.index.values.astype(np.int64) // 10**6
return jsonify(np.c_[t, df.open, df.high, df.low, df.close, df.volume].tolist())
其中df是一个包含索引的数据框,该索引是一个日期,并且至少(但不仅仅是)以下属性:open,high,low,close,volume.然后我使用flask的jsonify将新创建的数组输出为JSON.上面的代码可以工作,但对于我如何使其更好/更高效的任何想法,它看起来非常低效.
解决方法:
你可以使用to_json()方法:
In [88]: import pandas_datareader.data as web
In [89]: apl = web.get_data_yahoo('AAPL', '2016-07-05', '2016-07-07')
In [90]: apl
Out[90]:
Open High Low Close Volume Adj Close
Date
2016-07-05 95.389999 95.400002 94.459999 94.989998 27705200 94.989998
2016-07-06 94.599998 95.660004 94.370003 95.529999 30949100 95.529999
2016-07-07 95.699997 96.500000 95.620003 95.940002 25139600 95.940002
我将使用json.dumps(…,indent = 2)以使其更好/可读:
In [91]: import json
东方=“索引”
In [98]: print(json.dumps(json.loads(apl.to_json(orient='index')), indent=2))
{
"1467849600000": {
"Close": 95.940002,
"High": 96.5,
"Open": 95.699997,
"Adj Close": 95.940002,
"Volume": 25139600,
"Low": 95.620003
},
"1467676800000": {
"Close": 94.989998,
"High": 95.400002,
"Open": 95.389999,
"Adj Close": 94.989998,
"Volume": 27705200,
"Low": 94.459999
},
"1467763200000": {
"Close": 95.529999,
"High": 95.660004,
"Open": 94.599998,
"Adj Close": 95.529999,
"Volume": 30949100,
"Low": 94.370003
}
}
orient =’records'(重置索引以使列Date可见):
In [99]: print(json.dumps(json.loads(apl.reset_index().to_json(orient='records')), indent=2))
[
{
"Close": 94.989998,
"High": 95.400002,
"Open": 95.389999,
"Adj Close": 94.989998,
"Volume": 27705200,
"Date": 1467676800000,
"Low": 94.459999
},
{
"Close": 95.529999,
"High": 95.660004,
"Open": 94.599998,
"Adj Close": 95.529999,
"Volume": 30949100,
"Date": 1467763200000,
"Low": 94.370003
},
{
"Close": 95.940002,
"High": 96.5,
"Open": 95.699997,
"Adj Close": 95.940002,
"Volume": 25139600,
"Date": 1467849600000,
"Low": 95.620003
}
]
您可以使用以下to_json()参数:
date_format : {‘epoch’, ‘iso’}
Type of date conversion. epoch = epoch milliseconds, iso` = ISO8601, default is epoch.
date_unit : string, default ‘ms’ (milliseconds)
The time unit to encode to, governs timestamp and ISO8601 precision.
One of ‘s’, ‘ms’, ‘us’, ‘ns’ for second, millisecond, microsecond, and
nanosecond respectively.orient : string
The format of the JSON string
- split : dict like {index -> [index], columns -> [columns], data -> [values]}
- records : list like [{column -> value}, … , {column -> value}]
- index : dict like {index -> {column -> value}}
- columns : dict like {column -> {index -> value}} values : just the values array
内容总结
以上是互联网集市为您收集整理的python – 将数据帧输出到json数组全部内容,希望文章能够帮你解决python – 将数据帧输出到json数组所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。