拆分数据帧python

时间:2016-01-26 10:29:43

标签: python json pandas

我有这个相对较大的(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

3 个答案:

答案 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