我有这个相对较大的(9mb)JSON,它是一个dicts列表(我不知道这是否是JSON的惯例)我能够以任何方式读取它并变成数据帧。
数据是预测模型模型的回测,格式为:
[{"assetname":"xxx", 'return':0.9, "timestamp":1451080800},{"assetname":"xxx", 'return':0.9, "timestamp":1451080800}...{"assetname":"yyy", 'return':0.9, "timestamp":1451080800},{"assetname":"yyy", 'return':0.9, "timestamp":1451080800} ]
我想把所有资产分开放到自己的数据框中,有人可以帮忙吗?
这是btw的数据 http://www.mediafire.com/view/957et8za5wv56ba/test_predictions.json
答案 0 :(得分:1)
只需将数据放入DataFrame:
UIView
输出:
import pandas as pd
df = pd.DataFrame([{"assetname":"xxx", 'return':0.9, "timestamp":1451080800},
{"assetname":"xxx", 'return':0.9, "timestamp":1451080800},
{"assetname":"yyy", 'return':0.9, "timestamp":1451080800},
{"assetname":"yyy", 'return':0.9, "timestamp":1451080800}])
print(df)
答案 1 :(得分:1)
您可以从json文件加载数据框,如下所示:
In [9]: from pandas.io.json import read_json
In [10]: d = read_json('Descargas/test_predictions.json')
In [11]: d.head()
Out[11]:
market_trading_pair next_future_timestep_return ohlcv_start_date \
0 Poloniex_ETH_BTC 0.003013 1450753200
1 Poloniex_ETH_BTC -0.006521 1450756800
2 Poloniex_ETH_BTC 0.003171 1450760400
3 Poloniex_ETH_BTC -0.003083 1450764000
4 Poloniex_ETH_BTC -0.001382 1450767600
prediction_at_ohlcv_end_date
0 -0.157053
1 -0.920074
2 0.999806
3 0.627140
4 0.999857
你可以这样拆分:
Poloniex_ETH_BTC = d[d['market_trading_pair'] == 'Poloniex_ETH_BTC']
答案 2 :(得分:0)
扩展rapto的答案,您可以将整个数据框拆分为一列的值,如下所示:
df_dict = dict()
for name,df in d.groupby('market_trading_pair'):
df_dict[name]=df