使用循环从列构建Python字典

2024-05-14 12:58:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个熊猫数据框

**Breed     Animal**
Orange Tab  Cat
Tuxedo      Cat
Tabby       Cat
Husky       Dog
Golden      Dog
Labrador    Dog
Poodle      Dog
Koi         Fish
Fantail     Fish
GoldFish    Fish

并希望创建一个这样的词典

  mydict = {
  "Cat": ['Orange Tab', 'Tuxedo', 'Tabby'],
  "Dog": ['Husky','Golden','Labrador','Poodle'],
  "Fish": ['Koi','Fantail','GoldFish']
}

我从来没有处理过熊猫数据框的字典,所以我不知道从哪里开始。 我想我必须使用嵌套的for循环,但不知道如何循环数据帧中的动物部分

提前谢谢


Tags: 数据tabcatdogfishorangehuskygoldfish
2条回答

groupby与列表一起使用,然后转换为字典:

result = df.groupby('Animal')['Breed'].apply(list)
print(result.to_dict())

输出

{'Cat': ['Orange Tab', 'Tuxedo', 'Tabby'], 'Dog': ['Husky', 'Golden', 'Labrador', 'Poodle'], 'Fish': ['Koi', 'Fantail', 'GoldFish']}

您可以使用pandas.DataFrame.groupby

df.groupby('Animal**')['**Breed'].agg(list).to_dict()

输出:

{'Cat': ['Orange Tab', 'Tuxedo', 'Tabby'],
 'Dog': ['Husky', 'Golden', 'Labrador', 'Poodle'],
 'Fish': ['Koi', 'Fantail', 'GoldFish']}

相关问题 更多 >

    热门问题