首页 > 解决方案 > 使用循环从 Pandas 列构建 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']
}

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

提前致谢。

标签: pythonpandasdictionary

解决方案


你可以使用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']}

推荐阅读