gpt4 book ai didi

python - 将 DataFrame 的列转换为字典键

转载 作者:行者123 更新时间:2023-12-01 01:01:48 24 4
gpt4 key购买 nike

我试图将 DataFrame 的三列转换为字典键。

我试图使用循环来转换每一列并跟踪 worker 的血型。血型不应该重复。

Name = df[:,['Name1','Name2','Name3']] 
Names = {}
Bloodtypes = {}
for i,key,key2 in enumerate(zip(...)):
if key in Names[key] and key in Blood types[key]:
Names[key].append(i)
Blood types[key].append(key2)
else:
Names[key]=[i]
Blood types[key]=[key2]

Blood Type Name1 Name2 Name3
0 A NaN NaN John
1 O Adam Smith NaN
2 B NaN John NaN
3 AB NaN NaN NaN
4 A NaN NaN NaN
5 B NaN NaN NaN

我期待以下内容。

 Bloodtypes = {"Blank":['AB','A','B'],""John":['A','B'],("Adam","Smith"):['O']}
Names = {"Blank":[3,4,5],""John":[0,2],("Adam","Smith"):[1]}

最佳答案

这里我们使用stack创建新 key ,然后groupby to_dict

df['Newkey']=df[['Name1','Name2','Name3']].stack().groupby(level=0).apply(tuple)
df.Newkey=df.Newkey.fillna('Blank')
df.groupby('Newkey')['BloodType'].apply(list).to_dict()
Out[471]: {'Blank': ['AB', 'A', 'B'], ('John',): ['A', 'B'], ('Adam', 'Smith'): ['O']}
df.reset_index().groupby('Newkey')['index'].apply(list).to_dict()
Out[472]: {'Blank': [3, 4, 5], ('John',): [0, 2], ('Adam', 'Smith'): [1]}

关于python - 将 DataFrame 的列转换为字典键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55737634/

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