使用pandas过滤和排序数据

时间:2015-12-17 21:33:48

标签: python json pandas

我想从API获取部分信息,但我不知道如何过滤数据(我想只获得选择的值,如果密钥不包含“BTC,则不获取值) “字符串) 我正在尝试做这样的事情:

{"BTC_MINT":{"volume":11.00, "high24":0.002, "low24":0.001},
 "BTC_NOTE":{"volume":11.00, "high24":0.002, "low24":0.001}}

我从熊猫开始,但我不知道它是否正确。

link = 'https://poloniex.com/public?command=returnTicker'
with urllib.request.urlopen(link) as rawdata:
    data = rawdata.readall().decode()
data = json.loads(data)
print(data.items())
data = pd.DataFrame([[cur, last, volume, high24, low24] 
                     for cur, d in data.items() 
                     for last, x, x, x, volume, x, x, high24, low24 in d.items()])

不幸的是,这段代码不起作用。我收到以下错误:

[cur, last, volume, high24, low24] for cur, d, x, w, d, q in data.items() for last, x, x, x, volume, x, x, high24, low24 in d.items()
ValueError: need more than 2 values to unpack

有人可以帮忙告诉我该怎么办?

1 个答案:

答案 0 :(得分:1)

您可以将字典(数据)传递给pd.Dataframe以创建pandas数据帧。如果要将其子集仅包含其中包含字符串BTC的列,则可以执行以下操作:

df = pd.DataFrame(data)
new_cols = [x for x in df.columns if x.find('BTC') > -1]
new_df = df[new_cols]