簡體   English   中英

Pandas:將字典字典轉換為 pandas dataframe

[英]Pandas: Convert dictionary of dictionaries to pandas dataframe

我有一本像這樣的字典:

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}
}

並想將其轉換為 pandas dataframe ,如下所示:

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

日期是否是索引對我來說並不重要。 最簡單的方法是什么?

使用date作為索引,您可以這樣做:

df = pd.DataFrame(d).T

您可以進一步嘗試重命名索引,並與reset_index以使date成為普通列:

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

Output:

         Date  distinct_ntwrk_cd  distinct_inv_type_cd  distinct_syscode
0  2020-07-27                127                    44               679
1  2020-07-28                124                    43               678
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

您可以簡單地將 dict 放入 pandas DataFrame 方法中,然后使用轉置方法交換列和行

import pandas as pd

df = pd.DataFrame(d).T

我認為@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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM