熊猫:将字典词典转换为熊猫数据框

时间:2020-07-27 20:35:29

标签: python pandas

我有这样的字典:

d = {
'2020-07-27': {'distinct_ntwrk_cd': 127, 'distinct_inv_type_cd': 44, 'distinct_syscode': 679},
'2020-07-28': {'distinct_ntwrk_cd': 124, 'distinct_inv_type_cd': 43, 'distinct_syscode': 678}
}

并希望将其转换为如下所示的熊猫数据框:

+------------+-------------------+----------------------+------------------+
| Date       | distinct_ntwrk_cd | distinct_inv_type_cd | distinct_syscode |
+------------+-------------------+----------------------+------------------+
| 2020-07-27 | 127               | 44                   | 679              |
+------------+-------------------+----------------------+------------------+
| 2020-07-28 | 124               | 43                   | 678              |
+------------+-------------------+----------------------+------------------+

日期对我来说无关紧要。 最简单的方法是什么?

4 个答案:

答案 0 :(得分:3)

date为索引,您可以这样做:

df = pd.DataFrame(d).T

您可以进一步尝试重命名索引,并与reset_index链接以使date成为普通列:

pd.DataFrame(d).T.rename_axis('Date').reset_index()

输出:

         Date  distinct_ntwrk_cd  distinct_inv_type_cd  distinct_syscode
0  2020-07-27                127                    44               679
1  2020-07-28                124                    43               678

答案 1 :(得分:2)

Please try

df=pd.DataFrame(d).T


            distinct_ntwrk_cd  distinct_inv_type_cd  distinct_syscode
2020-07-27                127                    44               679
2020-07-28                124                    43               678

答案 2 :(得分:1)

您只需将dict放入pandas DataFrame方法中,然后使用转置方法交换列和行

import pandas as pd

df = pd.DataFrame(d).T

答案 3 :(得分:0)

我认为@Quang发布的答案是最好的解决方案 但是,如果您想尝试其他方法:

data = [['Date','distinct_ntwrk_cd','distinct_inv_type_cd','distinct_syscode']];

for k,v in d.items():
    indices=[]
    indices.append(k)
    vals=[]
    for k1,v1 in v.items():
        indices.append(v1)
    data.append(indices)

df = pd.DataFrame(data[1:],columns=data[0]); df