将JSON导入Pandas DataFrame

时间:2017-04-03 16:24:18

标签: python json pandas dataframe

我尝试在以下链接中导入表格:https://graphs.coinmarketcap.com/v1/datapoints/bitcoin/

pd.read_json('https://graphs.coinmarketcap.com/v1/datapoints/bitcoin/').head()

给我以下内容:

  market_cap_by_available_supply             price_btc  \
0    [1367174841000, 1500517590]  [1367174841000, 1.0]   
1    [1367261101000, 1575032004]  [1367261101000, 1.0]   
2    [1367347502000, 1501657492]  [1367347502000, 1.0]   
3    [1367433902000, 1298951550]  [1367433902000, 1.0]   
4    [1367522401000, 1148667722]  [1367522401000, 1.0]   

                 price_usd            volume_usd  
0   [1367174841000, 135.3]  [1367174841000, 0.0]  
1  [1367261101000, 141.96]  [1367261101000, 0.0]  
2   [1367347502000, 135.3]  [1367347502000, 0.0]  
3   [1367433902000, 117.0]  [1367433902000, 0.0]  
4  [1367522401000, 103.43]  [1367522401000, 0.0]  

列表第一个位置的值是我想成为DataFrame索引的时间戳。例如[时间戳,价值]

无论如何在pd.read_json命令中执行此操作?

2 个答案:

答案 0 :(得分:1)

我认为这是不可能的,因为orient的{​​{1}}参数没有正确映射到您所需格式的选项。

但是,您可以将pd.read_json与小词典理解结合使用:

requests

答案 1 :(得分:0)

试试这个。

import pandas as pd
df = pd.read_json('https://graphs.coinmarketcap.com/v1/datapoints/bitcoin/')
df = pd.DataFrame([df[df.columns[0]][i][0] for i in range(len(df))]).join(df)
df = df.set_index(df.columns[0])
df.index.rename('timestamp', inplace=True)
df.head()