将dataframe列转换为嵌套python字典
我想用pandas数据框第2列(源代码)和第3列(说明)以及按第1列分组(标题)创建python字典 另外,我希望只获取提供的标题的值 标题=['test1','test2']将dataframe列转换为嵌套python字典,python,pandas,Python,Pandas,我想用pandas数据框第2列(源代码)和第3列(说明)以及按第1列分组(标题)创建python字典 另外,我希望只获取提供的标题的值 标题=['test1','test2'] title source description 1 Test1 ABC description1 2 Test2 ABC description2 3 Test2 DEF description3 4 Test3 XYZ description4 output = {'
title source description
1 Test1 ABC description1
2 Test2 ABC description2
3 Test2 DEF description3
4 Test3 XYZ description4
output = {'Test1':{'ABC':'description1'},'Test2':{'ABC':'description2':'DEF':'description3'}
首先与for filter一起使用,然后与dicts的系列
的lambda函数一起使用,最后:
您可以按dataframe w.r.t.标题分组,然后使用python zip函数创建包含源代码和描述的内部字典。请查找以下相同的代码
final_dict=dict()
all_groups = df.groupby('title')
for title in titles:
title_group = all_groups.get_group(title)
source_desc=dict(zip(title_group.source, title_group.description))
final_dict[title_group] = source_desc
print(final_dict)
试试这个
result = {}
filter_ = ['Test1','Test2']
for x in df[df['title'].isin(filter_)].to_dict(orient='records'):
result.setdefault(x['title'], {}).update({x['source']: x['description']})
result = {}
filter_ = ['Test1','Test2']
for x in df[df['title'].isin(filter_)].to_dict(orient='records'):
result.setdefault(x['title'], {}).update({x['source']: x['description']})
{'Test1': {'ABC': 'description1'}, 'Test2': {'ABC': 'description2', 'DEF': 'description3'}}