【发布时间】:2019-12-16 01:05:45
【问题描述】:
我正在尝试遍历多个 JSON 数据,然后将列表中的每个值添加到 DataFrame。对于每个 JSON 数据,我创建一个列标题。我似乎总是只获取最后一列的数据,所以我认为附加数据的方式显然有问题。
from pycoingecko import CoinGeckoAPI
cg = CoinGeckoAPI()
df = pd.DataFrame()
timePeriod = 120
for x in range(10):
try:
data = cg.get_coin_market_chart_by_id(id=geckoList[x],
vs_currency ='btc', days = 'timePeriod')
for y in range(timePeriod):
df = df.append({geckoList[x]: data['prices'][y][1]},
ignore_index= True)
print(geckoList[x])
except:
pass
壁虎示例:
['bitcoin',
'ethereum',
'xrp',
'bitcoin-cash',
'litecoin',
'binance-coin']
其中一枚硬币的 JSON 示例:
'prices': [[1565176840078, 0.029035263522626625],
[1565177102060, 0.029079747150763842],
[1565177434439, 0.029128983083947863],
[1565177700686, 0.029136960678700433],
[1565178005716, 0.0290826667213779],
[1565178303855, 0.029173025688296675],
[1565178602640, 0.029204331218623796],
[1565178911561, 0.029211943928343167],
预期结果将是一个 DataFrame,其中包含每个加密硬币的数据列和行。目前只有最后一列显示数据
目前,它看起来像这样:
bitcoin ethereum bitcoin-cash
0 NaN NaN 0.33
1 NaN NaN 0.32
2 NaN NaN 0.21
3 NaN NaN 0.22
4 NaN NaN 0.25
5 NaN NaN 0.26
6 NaN NaN 0.22
7 NaN NaN 0.22
【问题讨论】:
-
你检查数据的内容了吗?不幸的是,由于您的示例无法运行,因此很难为您提供帮助。
-
是的,数据看起来不错的例子(添加了 JSON 的例子)
-
NAN表示Not a Number,因此请仔细检查字母或不是数字字符。 -
这很奇怪,因为如果我扩展列表 Bitcoin-cash 显示 NaN 而现在最后一列显示数据。