pandas将excel三列数据转为字典格式
需求:
将表格三列数据的DataFrame格式数据:
id sex name
0 1 girl lisa
1 2 girl luxi
2 3 boy alika
3 4 boy join
转为字典格式: {id:{sex:name}}
代码实现:
方式一:
import pandas as pd
from collections import defaultdict
df = pd.DataFrame([[1,"girl","lisa"],[2,"girl","luxi"],[3,"boy","alika"],[4,"boy","join"]],columns = ["id","sex","name"])
result = defaultdict(dict)
for id,sex,name in df.itertuples(index = False):
result[id][sex] = name
print(result)
# defaultdict(<class 'dict'>, {1: {'girl': 'lisa'}, 2: {'girl': 'luxi'}, 3: {'boy': 'alika'}, 4: {'boy': 'join'}})
方式二:
import pandas as pd
df = pd.DataFrame([[1,"girl","lisa"],[2,"girl","luxi"],[3,"boy","alika"],[4,"boy","join"]],columns = ["id","sex","name"])
result = dict()
for index,row in df.iterrows():
id,sex,name = row
result.setdefault(id,{}).update({sex:name})
print(result)
# {1: {'girl': 'lisa'}, 2: {'girl': 'luxi'}, 3: {'boy': 'alika'}, 4: {'boy': 'join'}}