[英]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.