当前位置: 首页 > 知识库问答 >
问题:

使用循环[duplicate]从列构建Python字典

胡霖
2023-03-14

我有一个熊猫的数据框

**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循环,但不知道如何循环数据帧中的动物部分。

提前谢谢。

共有2个答案

艾修然
2023-03-14

将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']}
翟理
2023-03-14

你可以用熊猫。DataFrame.groupby:

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

输出:

{'Cat': ['Orange Tab', 'Tuxedo', 'Tabby'],
 'Dog': ['Husky', 'Golden', 'Labrador', 'Poodle'],
 'Fish': ['Koi', 'Fantail', 'GoldFish']}
 类似资料:
  • 问题内容: 我在玩一些python循环。我对使用“ for”循环非常熟悉: 您还可以使用循环创建一个简单列表: 然后我最近在Stack上发现了一种不错的高效循环类型来构建一个列表(这种类型的循环有名称吗?我真的很想知道,以便可以对其进行更好地搜索): 好的,话虽如此,我想进一步讲解最后一种循环,我尝试使用相同的逻辑类型构建python字典: 而不是使用: 我在等号上收到一条错误消息,告诉我这是无效

  • 我一直试图弄清楚如何找到一个列表的模式,而不使用排序函数,也不导入任何模块已经有一段时间了...以下是我目前掌握的情况: 如何找到如下输出:

  • 问题内容: 以下代码使我有些困惑: 我不明白的是那key部分。Python如何识别它只需要从字典中读取密钥?是中的特殊字?还是仅仅是一个变量? 问题答案: 5174 只是一个变量名。 只会循环遍历字典中的键,而不是键和值。要遍历键和值,可以使用以下命令: 对于Python 3.x: 对于Python 2.x: 要测试自己,请将单词更改key为poop。 在替换为,它返回由dict支持的类似set的

  • 问题内容: 我需要将列表转换成字典,如下所示。奇数元素具有键,偶数元素具有值。 -> 获得相同结果的更好方法? 添加 似乎在工作 问题答案: dict(x[i:i+2] for i in range(0, len(x), 2))

  • 本文向大家介绍Python之循环结构,包括了Python之循环结构的使用技巧和注意事项,需要的朋友参考一下 while循环结构 格式: 执行流程:当程序执行到while语句时,首先判断表达式的真假。若表达式的值为真,则执行缩进的语句块,之后返回表达式继续判断;若表达式的值为假,则跳过缩进的语句块执行。 说明: 表达式:也叫循环条件 语句块:也叫循环体 死循环:循环条件一直成立 break:跳出循环

  • 循环结构就是为了将相似或者相同的代码操作变得更见简洁,使得代码可以重复利用 循环结构分为2类:while循环 和 for..in循环 1.6.1 while型循环 格式1: while 条件表达式: 循环的内容 [变量的变化] 格式2: while 条件表达式: 循环的内容 [变量的变化] else: