天天看点

pandas将excel三列数据转为字典格式

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'}}
           

继续阅读