我有这样的字典:
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 |
+------------+-------------------+----------------------+------------------+
日期对我来说无关紧要。 最简单的方法是什么?
答案 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