python - 从 API 查询列表对象并将其返回到数据框中 - 格式问题
问题描述
我有以下脚本,它根据 (i) 的引用以列表格式返回数据。我设置了一个空列表,然后使用 API 函数 get_kline_data 进行查询,并使用 .extend 函数将每个输出传递到我的 klines_list
klines_list = []
a = ["REQ-ETH","REQ-BTC","XLM-BTC"]
for i in a:
klines = client.get_kline_data(i, '5min', 1619317366, 1619317606)
klines_list.extend([i,klines])
klines_list
klines_list 然后以这种格式返回数据;
['REQ-ETH',
[['1619317500',
'0.0000491',
'0.0000491',
'0.0000491',
'0.0000491',
'5.1147',
'0.00025113177']],
'REQ-BTC',
[['1619317500',
'0.00000219',
'0.00000219',
'0.00000219',
'0.00000219',
'19.8044',
'0.000043371636']],
'XLM-BTC',
[['1619317500',
'0.00000863',
'0.00000861',
'0.00000863',
'0.00000861',
'653.5693',
'0.005629652673']]]
然后我尝试将其转换为数据框;
import pandas as py
df = py.DataFrame(klines_list)
这就是结果;
0
0 REQ-ETH
1 [[1619317500, 0.0000491, 0.0000491, 0.0000491,...
2 REQ-BTC
3 [[1619317500, 0.00000219, 0.00000219, 0.000002...
4 XLM-BTC
5 [[1619317500, 0.00000863, 0.00000861, 0.000008..
DF 的结构不正确,这似乎是由于我将列表放在一起的方式。
我想要与列表 a 中正确条目相对应的列中的定量数据,而不是行中的定量数据。此外,代码数据或列表 a,(“REQ-ETH/REQ-BTC”)等应位于单独的列中。什么是进行重组的好方法?
编辑:@Ynjxsjmh 这是遵循以下建议在 for 循环中附加字典时的输出
REQ-ETH REQ-BTC XLM-BTC
0 [1619317500, 0.0000491, 0.0000491, 0.0000491, ... NaN NaN
1 NaN [1619317500, 0.00000219, 0.00000219, 0.0000021... NaN
2 NaN NaN [1619317500, 0.00000863, 0.00000861, 0.0000086...
解决方案
pandas.DataFrame()
可以接受一个字典。它将构造dict键作为列标题,将dict值构造为列值。
import pandas as pd
a = ["REQ-ETH","REQ-BTC","XLM-BTC"]
klines_data = {}
for i in a:
klines = client.get_kline_data(i, '5min', 1619317366, 1619317606)
klines_data[i] = klines[0]
# ^
# |
# Add a key to klines_data
df = pd.DataFrame(klines_data)
print(df)
REQ-ETH REQ-BTC XLM-BTC
0 1619317500 1619317500 1619317500
1 0.0000491 0.00000219 0.00000863
2 0.0000491 0.00000219 0.00000861
3 0.0000491 0.00000219 0.00000863
4 0.0000491 0.00000219 0.00000861
5 5.1147 19.8044 653.5693
6 0.00025113177 0.000043371636 0.005629652673
如果长度klines
不相等,可以使用
df = pd.DataFrame.from_dict(klines_data, orient='index').T
推荐阅读
- git - .gitignore 文件的路径
- c++ - 使用默认复制构造函数会破坏 C++ 中的树
- angular - 在 Angular 中使用 mat-form-field 时启动画面挂起
- r - 如何将键值和图例放在热图的底部
- cassandra - 从 Cassandra 中的多 DC 集群中删除 DC
- javascript - 开玩笑模拟 readFile,writeFile 不加载我的模拟
- c# - 如何从 C# 中的组合框获取第一项?
- java - Spring Boot Gradle Java 应用程序中的 SQL Server 依赖项
- c - 如何从线程返回值返回到 main()
- python - 通过 Anaconda 使用 Visual Studio 的问题