python - 如何将字典元组转换为有组织的数据框?
问题描述
我正在提取一个以以下格式检索数据的 API。
data = ({'2019-12-20': {'SMA': '216.0037'},
'2019-12-19': {'SMA': '215.4711'},
'2019-12-18': {'SMA': '214.9335'},
'2019-12-17': {'SMA': '214.4074'}})
目前,当我尝试运行“data = pd.DataFrame(data)”时,它返回一个包含 2 行的数据框,该数据框使用每个日期作为单独的列,并为每一行提供一个字典作为值(下面的示例)。
2019-12-20 | 2019-12-19 | 2019-12-18
0 "{ 'SMA' : '216.0037' } | {'SMA': '215.4710"} | {'SMA': '214.9335'}
1 NaN | NaN | NaN
我想弄清楚如何将这些数据转换为以下格式的数据框。
date | SMA
----------------------------
0 '2019-12-20' | '216.0036'
1 '2019-12-19' | '215.4711'
2 '2019-12-18' | '214.9335'
3 '2019-12-17' | '214.4047'
任何帮助将非常感激!
解决方案
IIUC
pd.DataFrame(data).T.reset_index().rename(columns={'index':'date'})
date SMA
0 2019-12-20 216.0037
1 2019-12-19 215.4711
2 2019-12-18 214.9335
3 2019-12-17 214.4074
或者from_dict
pd.DataFrame.from_dict(data,'index').reset_index().rename(columns={'index':'date'})
SMA
2019-12-17 214.4074
2019-12-18 214.9335
2019-12-19 215.4711
2019-12-20 216.0037
推荐阅读
- java - 使用 Java 连接到没有 Kerberos 的 localhost 独立 HBase 时,“MasterNotRunningException 无法找到任何 Kerberos tgt”
- c++ - 向未排序的地图添加相同的键
- elasticsearch - Elasticsearch,理解完成建议
- java - 如何在android studio中使用其他类的方法
- c++ - 模板模板推导给我一个通用引用的错误
- javascript - onClick() 不会触发 React-Native App 中的函数
- debugging - Visual Studio Code 1.14 - 已设置断点但尚未绑定
- angular - 在加载 UI 之前从 http 调用获取数据
- javascript - OpenTok users identification
- laravel - Get route by name in different namespace