【发布时间】:2020-06-21 18:23:46
【问题描述】:
我正在尝试使用按日期索引的加密货币总市值创建一个 pandas 数据框。数据来自 Coingecko API。我可以通过以下方式实现:
import requests
import json
r = requests.get('https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=200')
response = json.loads(r.content)
#suppresses scientific notation
pd.set_option('display.float_format','{:.2f}'.format)
marketcapdf = df(columns=['dates', 'marketcap','volume'])
dates = []
for values in response['prices']:
dates.append(values[0])
totalmktcap = []
for values in response['market_caps']:
totalmktcap.append(values[1])
dailymktvolume = []
for values in response['total_volumes']:
dailymktvolume.append(values[1])
marketcapdf = df(dates, columns=['Dates'])
marketcapdf = marketcapdf.assign(Total_Marketcap=totalmktcap)
marketcapdf = marketcapdf.assign(Daily_volume=dailymktvolume)
print (marketcapdf)
这会产生正确的数据框:
Dates Total_Marketcap Daily_volume
0 1566518400000 181311699889.67 20144228964.47
1 1566604800000 187878412535.86 18313019852.75
2 1566691200000 181764456091.20 21187546608.00
3 1566777600000 180491202154.33 17899166778.01
4 1566864000000 184989701185.55 23392461462.61
.. ... ... ...
196 1583452800000 165070261612.79 38122635173.15
197 1583539200000 166791067805.43 41388087588.44
198 1583625600000 162543409238.00 36764763103.12
199 1583712000000 147076617271.69 39132209137.70
200 1583767255000 142178026150.74 50332115525.77
我想知道是否有更好的方法可以做到这一点,很确定可以通过列表元素访问在单个 for 循环中完成所有操作。但我需要你的帮助来解决这个问题。 如果你想查看 API 响应,就去https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=200
【问题讨论】:
-
你可以使用
zip,但是你拥有的很好。
标签: python pandas loops dataframe cryptocurrency