python - 如何将列表中的嵌套字典放入Dataframe?
问题描述
我正在尝试从交易所的 api 获取数据,我认为它在一个包含 dict 的列表中?所以我想创建一个表,带有名称、初始价格、价格、高、低等。问题:如何将它们转换为数据框格式?有作品的索引,pd.Dataframe
但前提是它是一只股票。
pd.Series
是我迄今为止最好的,看起来像这样:
1 {'BTC-ACM': {'initialprice': '0.00000390', 'pr...
0 {'BTC-AEON': {'initialprice': '0.00010617', 'p...
原始数据如下所示:
[{'BTC-ACM': {'initialprice': '0.00000380', 'price': '0.00000428', 'high':
'0.00000510', 'low': '0.00000351', 'volume': '0.24647930', '
bid': '0.00000433', 'ask': '0.00000465'}}, {'BTC-AEON': {'initialprice':
'0.00010652', 'price': '0.00011040', 'high': '0.00013774', 'lo
w': '0.00010616', 'volume': '1.17486173', 'bid': '0.00011040', 'ask':
'0.00011867'}},....]
尝试使它成为这样的表:
Name | InitialPrice |Price |High |Low|
BTC-ACM| 0.0000132 |0.123 |0.9 |0.2|
BTC-AEO| 0.2131243 |0.213 |0.2 |0.1|
解决方案
重塑您的数据,然后调用DataFrame.to_dict
:
df = pd.DataFrame.from_dict(
{k : d[k] for d in data for k in d}, orient='index')
df[['initialprice', 'price', 'high', 'low']]
initialprice price high low
BTC-ACM 0.00000380 0.00000428 0.00000510 0.00000351
BTC-AEON 0.00010652 0.00011040 0.00013774 0.00010616
推荐阅读
- arrays - “没有提供数组访问的设置方法”——为什么在 Kotlin 中会发生这种情况?
- javascript - 为什么 javascript 在我之前的 html 上运行
- r - tidyverse 和 jsonlite - 将嵌套的 JSON 代码提要转换为单行数据框
- elasticsearch - 使用 gradle 设置基本插件
- mysql - 两个表的LEFT JOIN,SUM,GROUP
- javascript - 自动更正/自动拼写检查和自动更正,无需询问用户
- ios - UIControl 内存泄漏
- python - 捕获但不使用字符串中的字符
- python - 使用 matplotlib 在图例中制作自定义垂直线标记
- javascript - 获取引导模式中动态添加的选择输入的值以显示/隐藏文本输入