首页 > 解决方案 > 如何将字典元组转换为有组织的数据框?

问题描述

我正在提取一个以以下格式检索数据的 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'

任何帮助将非常感激!

标签: pythonpandasdataframedictionarytuples

解决方案


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

推荐阅读