使用循环从 Pandas 列构建 Python 字典 [重复]
Posted
技术标签:
【中文标题】使用循环从 Pandas 列构建 Python 字典 [重复]【英文标题】:Build Python dictionary from Pandas columns using loop [duplicate] 【发布时间】:2020-08-03 06:41:16 【问题描述】:我有一个这样的熊猫数据框
**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 部分。
提前致谢。
【问题讨论】:
【参考方案1】:将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']
【讨论】:
【参考方案2】:你可以使用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']
【讨论】:
以上是关于使用循环从 Pandas 列构建 Python 字典 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
迭代 4 个 pandas 数据框列并将它们存储到 4 个列表中,其中一个 for 循环而不是 4 个 for 循环
如何在不使用 python 循环的情况下检测和转换列值的单位?