gpt4 book ai didi

python - 带有嵌套字典列表的字典中的 Pandas DataFrame

转载 作者:行者123 更新时间:2023-11-28 16:26:05 25 4
gpt4 key购买 nike

my_dict = { 'company_a': [],
'company_b': [ {'gender': 'Male',
'investor': True,
'name': 'xyz',
'title': 'Board Member'} ],
'company_c': [],
'company_m': [ {'gender': 'Male',
'investor': None,
'name': 'abc',
'title': 'Advisor'},
{'gender': 'Male',
'investor': None,
'name': 'opq',
'title': 'Advisor'} ],
'company_x': [],
'company_y': [] }

如何将上述 Python 字典转换为包含以下列的 Pandas 数据框:company, gender, investor, name, title

company 列将由 my_dict 的顶级键填充。其他列将填充数组中字典中的值。

我试过 pd.DataFrame.from_dict(my_dict, orient='index'),但它没有给我想要的东西。

最佳答案

此版本用 None 填充所有缺失值:

data = {'company': [], 'gender': [], 'investor': [], 'name': [], 'title': []}
for k, v in my_dict.items():
for entry in v:
data['company'].append(k)
if not v:
data['company'].append(k)
for name in ['gender', 'investor', 'name', 'title']:
has_entry = False
for entry in v:
has_entry = True
data[name].append(entry.get(name))
if not has_entry:
data[name].append(None)
df = pd.DataFrame(data)
print(df)

输出:

     company gender investor  name         title
0 company_a None None None None
1 company_y None None None None
2 company_b Male True xyz Board Member
3 company_c None None None None
4 company_x None None None None
5 company_m Male None abc Advisor
6 company_m Male None opq Advisor

你也可以用NaN替换所有的None:

print(df.fillna(np.nan))

输出:

     company gender investor name         title
0 company_a NaN NaN NaN NaN
1 company_y NaN NaN NaN NaN
2 company_b Male True xyz Board Member
3 company_c NaN NaN NaN NaN
4 company_x NaN NaN NaN NaN
5 company_m Male NaN abc Advisor
6 company_m Male NaN opq Advisor

关于python - 带有嵌套字典列表的字典中的 Pandas DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36487916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com