假设我有一本像下面这样的字典
sample_dict = {
0: {
'Name': {'First': 'Jack', 'Last': 'Daniels'},
'Age': 22,
'University': 'BHU',
},
1: {
'Name': {'First': 'Mark', 'Last': 'Zuckerberg'},
'Age': 21,
'University': 'JNU',
},
2: {
'Name': {'First': 'Tim', 'Last': 'Cook'},
'Age': 23,
'University': 'DU',
}
}
我想把这个字典转换成Dataframe
预期输出:
Name Age University
First Last
Jack Daniels 22 BHU
Mark Zuckerberg 21 JNU
Tim Cook 23 DU
同时执行以下代码
df = pd.DataFrame(details).T
我得到的结果输出为:
Name Age University
0 {'First': 'Jack', 'Last': 'Daniels'} 22 BHU
1 {'First': 'Mark', 'Last': 'Zuckerberg'} 21 JNU
2 {'First': 'Tim', 'Last': 'Cook'} 23 DU
欢迎提出想法!!
提前致谢!!
答案 0 :(得分:0)
json_normalize
非常强大。您可以在 dict 值上调用它。
import pandas as pd
sample_dict = {
0: {
'Name': {'First': 'Jack', 'Last': 'Daniels'},
'Age': 22,
'University': 'BHU',
},
1: {
'Name': {'First': 'Mark', 'Last': 'Zuckerberg'},
'Age': 21,
'University': 'JNU',
},
2: {
'Name': {'First': 'Tim', 'Last': 'Cook'},
'Age': 23,
'University': 'DU',
}
}
pd.json_normalize(sample_dict.values())
输出
Age University Name.First Name.Last
0 22 BHU Jack Daniels
1 21 JNU Mark Zuckerberg
2 23 DU Tim Cook
答案 1 :(得分:0)
另一种方式:
df=pd.DataFrame(sample_dict).T
#Then:
df=pd.DataFrame(df.pop('Name').to_list()).add_prefix('Name.').join(df.add_prefix('.'))
#Finally:
df=df.sort_index(axis=1)
df.columns=df.columns.str.split('.',expand=True)
现在,如果您打印 df
,您将获得预期的输出