- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从 TD Ameritrade API 提取股票数据,我想将其存储在 DataFrame 中。
从 API 中我得到一个嵌套的 JSON 对象,当我将它放入数据框中时,我得到 4 列:索引、蜡烛、空、符号。但是,蜡烛内部是一个字典,我希望将其作为数据框中的单独列(“打开”、“关闭”、...)
我试过 json_normalize
和 pd.io.json.json_normalize
都没有给我想要的结果
import pandas as pd
import requests
from pandas.io.json import json_normalize
endpoint = r'https://api.tdameritrade.com/v1/marketdata/{}/pricehistory'.format('GOOG')
client_id = 'AMSAFI1234567'
payload = {'apikey':client_id,
'periodType': 'day',
'frequencyType': 'minute',
'frequency' :'1',
'period':'2',
'endDate': '1556158524000',
'startDate': '1554535854000',
'needExtendedHoursData':'true'}
content = requests.get(url = endpoint, params = payload)
data = content.json()
print(data)
{'candles': [{'open': 1260.25, 'high': 1260.5, 'low': 1260.0, 'close': 1260.28,
'volume': 2544, 'datetime': 1556029980000}, {'open': 1260.39, 'high': 1260.61,
'low': 1260.3501, 'close': 1260.3501, 'volume': 1703, 'datetime':
1556030040000}, {'open': 1260.35, 'high': 1260.59, 'low': 1260.07, 'close':
1260.56, 'volume': 2156, 'datetime': 1556030100000}, {'open': 1260.56, 'high':
1260.56, 'low': 1259.27, 'close': 1259.7, 'volume': 1320, 'datetime':
1556030160000}, {'open': 1260.06, 'high': 1260.06, 'low': 1259.56, 'close':
1259.56, 'volume': 800, 'datetime': 1556030220000},
'close': 1264.61, 'volume': 100, 'datetime': 1556146920000}, {'open': 1265.87,
'high': 1266.0, 'low': 1265.87, 'close': 1266.0, 'volume': 232, 'datetime':
1556147220000}], 'symbol': 'GOOG', 'empty': False}
最佳答案
您正在使用 json_normalize
1 级太高。您想要标准化/扁平化 data['candles']
下的数据:
我也会小心发布 api key 。
import pandas as pd
import requests
from pandas.io.json import json_normalize
endpoint = r'https://api.tdameritrade.com/v1/marketdata/{}/pricehistory'.format('GOOG')
client_id = 'XXXXXXXXXXX'
payload = {'apikey':client_id,
'periodType': 'day',
'frequencyType': 'minute',
'frequency' :'1',
'period':'2',
'endDate': '1556158524000',
'startDate': '1554535854000',
'needExtendedHoursData':'true'}
content = requests.get(url = endpoint, params = payload)
data = content.json()
df = json_normalize(data['candles'])
print (df)
close datetime high low open volume
0 1267.0000 1556035860000 1267.8600 1267.0000 1267.8600 1450
1 1266.8500 1556035920000 1266.8500 1266.8500 1266.8500 100
2 1266.5300 1556035980000 1266.7300 1266.2400 1266.6750 1290
3 1267.1613 1556036040000 1267.1613 1266.5400 1266.5500 1190
4 1267.4150 1556036100000 1267.4150 1266.8800 1266.8800 1100
5 1267.4299 1556036160000 1267.4299 1267.4299 1267.4299 250
6 1267.4540 1556036220000 1268.1800 1267.4540 1267.8100 1650
7 1267.0800 1556036280000 1267.5100 1267.0800 1267.4900 900
8 1265.6850 1556036340000 1267.1210 1265.5300 1267.1210 4148
9 1265.4600 1556036400000 1265.9600 1265.1703 1265.8300 2290
10 1266.2774 1556036460000 1266.4800 1265.4050 1265.4050 3341
11 1266.4684 1556036520000 1266.4684 1266.3247 1266.3247 1134
12 1266.8550 1556036580000 1267.0500 1266.4600 1266.4600 1500
13 1267.2550 1556036640000 1267.3500 1266.6401 1267.0393 1619
14 1267.2400 1556036700000 1267.2450 1267.2400 1267.2450 230
15 1266.8000 1556036760000 1267.4400 1266.8000 1267.4400 940
16 1266.0992 1556036820000 1266.5270 1266.0992 1266.5270 1523
17 1266.2599 1556036880000 1266.2700 1266.2599 1266.2700 600
18 1265.8400 1556036940000 1266.2350 1265.6800 1265.8400 2165
19 1265.5400 1556037000000 1265.8600 1265.5000 1265.5300 1400
20 1265.9650 1556037060000 1265.9900 1265.1200 1265.4532 1550
21 1265.6300 1556037120000 1265.7750 1265.4300 1265.5929 1580
22 1265.4469 1556037180000 1265.5300 1265.1000 1265.5300 1071
23 1265.6600 1556037240000 1265.7100 1265.6313 1265.7100 650
24 1266.1850 1556037300000 1266.1950 1265.6257 1265.6257 930
25 1266.1400 1556037360000 1266.2500 1265.9400 1266.1300 1050
26 1266.4250 1556037420000 1266.5750 1266.3000 1266.3294 1130
27 1266.4800 1556037480000 1266.6500 1266.3500 1266.6500 900
28 1266.7400 1556037540000 1266.8300 1266.5700 1266.7100 1103
29 1266.8450 1556037600000 1266.8600 1266.8100 1266.8600 600
.. ... ... ... ... ... ...
585 1256.0000 1556136000000 1256.0000 1256.0000 1256.0000 211625
586 1258.0000 1556136360000 1258.0000 1256.0000 1256.0000 1154
587 1260.7100 1556136420000 1260.7100 1260.0000 1260.0000 550
588 1262.9500 1556136540000 1262.9500 1262.9500 1262.9500 100
589 1265.2600 1556136600000 1265.2600 1262.9500 1262.9500 2103
590 1264.5000 1556136660000 1264.5000 1263.9700 1263.9700 486
591 1264.0000 1556136840000 1264.0000 1264.0000 1264.0000 100
592 1265.6100 1556136900000 1265.6100 1265.5000 1265.5000 300
593 1264.0600 1556136960000 1264.0600 1264.0600 1264.0600 100
594 1265.1800 1556137020000 1265.1800 1265.1800 1265.1800 100
595 1264.0000 1556137140000 1264.0000 1264.0000 1264.0000 192
596 1264.9000 1556137320000 1265.1400 1264.9000 1264.9000 537
597 1264.6500 1556137620000 1264.6500 1264.6500 1264.6500 500
598 1264.7500 1556137680000 1264.7500 1264.7500 1264.7500 243
599 1266.4900 1556137740000 1266.4900 1266.4900 1266.4900 124
600 1268.0000 1556138580000 1268.0000 1268.0000 1268.0000 100
601 1267.2900 1556138700000 1267.2900 1267.2900 1267.2900 100
602 1268.9800 1556138820000 1268.9800 1268.9800 1268.9800 100
603 1269.0700 1556139240000 1269.1200 1269.0700 1269.1200 200
604 1256.0000 1556139420000 1256.0000 1256.0000 1256.0000 118
605 1269.0900 1556139480000 1269.0900 1269.0900 1269.0900 100
606 1270.0000 1556139540000 1270.0000 1270.0000 1270.0000 200
607 1267.3800 1556141040000 1267.3800 1267.3800 1267.3800 100
608 1268.0000 1556141100000 1268.0000 1268.0000 1268.0000 150
609 1268.6600 1556141940000 1268.6600 1268.6600 1268.6600 100
610 1265.0000 1556143620000 1265.0000 1265.0000 1265.0000 200
611 1265.0000 1556143740000 1265.0000 1265.0000 1265.0000 100
612 1256.0000 1556146620000 1256.0000 1256.0000 1256.0000 136
613 1264.6100 1556146920000 1264.6100 1264.6100 1264.6100 100
614 1266.0000 1556147220000 1266.0000 1265.8700 1265.8700 232
[615 rows x 6 columns]
关于python - 如何从嵌套列中提取 json 到数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56211111/
我需要将文本放在 中在一个 Div 中,在另一个 Div 中,在另一个 Div 中。所以这是它的样子: #document Change PIN
奇怪的事情发生了。 我有一个基本的 html 代码。 html,头部, body 。(因为我收到了一些反对票,这里是完整的代码) 这是我的CSS: html { backgroun
我正在尝试将 Assets 中的一组图像加载到 UICollectionview 中存在的 ImageView 中,但每当我运行应用程序时它都会显示错误。而且也没有显示图像。 我在ViewDidLoa
我需要根据带参数的 perl 脚本的输出更改一些环境变量。在 tcsh 中,我可以使用别名命令来评估 perl 脚本的输出。 tcsh: alias setsdk 'eval `/localhome/
我使用 Windows 身份验证创建了一个新的 Blazor(服务器端)应用程序,并使用 IIS Express 运行它。它将显示一条消息“Hello Domain\User!”来自右上方的以下 Ra
这是我的方法 void login(Event event);我想知道 Kotlin 中应该如何 最佳答案 在 Kotlin 中通配符运算符是 * 。它指示编译器它是未知的,但一旦知道,就不会有其他类
看下面的代码 for story in book if story.title.length < 140 - var story
我正在尝试用 C 语言学习字符串处理。我写了一个程序,它存储了一些音乐轨道,并帮助用户检查他/她想到的歌曲是否存在于存储的轨道中。这是通过要求用户输入一串字符来完成的。然后程序使用 strstr()
我正在学习 sscanf 并遇到如下格式字符串: sscanf("%[^:]:%[^*=]%*[*=]%n",a,b,&c); 我理解 %[^:] 部分意味着扫描直到遇到 ':' 并将其分配给 a。:
def char_check(x,y): if (str(x) in y or x.find(y) > -1) or (str(y) in x or y.find(x) > -1):
我有一种情况,我想将文本文件中的现有行包含到一个新 block 中。 line 1 line 2 line in block line 3 line 4 应该变成 line 1 line 2 line
我有一个新项目,我正在尝试设置 Django 调试工具栏。首先,我尝试了快速设置,它只涉及将 'debug_toolbar' 添加到我的已安装应用程序列表中。有了这个,当我转到我的根 URL 时,调试
在 Matlab 中,如果我有一个函数 f,例如签名是 f(a,b,c),我可以创建一个只有一个变量 b 的函数,它将使用固定的 a=a1 和 c=c1 调用 f: g = @(b) f(a1, b,
我不明白为什么 ForEach 中的元素之间有多余的垂直间距在 VStack 里面在 ScrollView 里面使用 GeometryReader 时渲染自定义水平分隔线。 Scrol
我想知道,是否有关于何时使用 session 和 cookie 的指南或最佳实践? 什么应该和什么不应该存储在其中?谢谢! 最佳答案 这些文档很好地了解了 session cookie 的安全问题以及
我在 scipy/numpy 中有一个 Nx3 矩阵,我想用它制作一个 3 维条形图,其中 X 轴和 Y 轴由矩阵的第一列和第二列的值、高度确定每个条形的 是矩阵中的第三列,条形的数量由 N 确定。
假设我用两种不同的方式初始化信号量 sem_init(&randomsem,0,1) sem_init(&randomsem,0,0) 现在, sem_wait(&randomsem) 在这两种情况下
我怀疑该值如何存储在“WORD”中,因为 PStr 包含实际输出。? 既然Pstr中存储的是小写到大写的字母,那么在printf中如何将其给出为“WORD”。有人可以吗?解释一下? #include
我有一个 3x3 数组: var my_array = [[0,1,2], [3,4,5], [6,7,8]]; 并想获得它的第一个 2
我意识到您可以使用如下方式轻松检查焦点: var hasFocus = true; $(window).blur(function(){ hasFocus = false; }); $(win
我是一名优秀的程序员,十分优秀!