pandas dataframe 两列转字典_dataframe两列变字典-程序员宅基地

技术标签: pandas  计算机编程  

在数据处理时,时常需要将数据表的两列转化为字典映射形式

df[[‘A’,‘B’]] -----> dict(key:A, value:B)

方法一:使用zip

d = dict(zip(df['A'],df['B']))
import pandas as pd
import numpy as np

test_dict = {'id':[1,2,3,4,5,6],'name':['Alice','Bob','Cindy','Eric','Helen','Grace '],'gender':[0,1,0,1,0,0],
             'math':[90,89,99,78,97,93]}
df = pd.DataFrame.from_dict(test_dict)

print(df)
'''
   id    name  gender  math
0   1   Alice       0    90
1   2     Bob       1    89
2   3   Cindy       0    99
3   4    Eric       1    78
4   5   Helen       0    97
5   6  Grace        0    93
'''

dict(zip(df['id'],df['math']))
# {1: 90, 2: 89, 3: 99, 4: 78, 5: 97, 6: 93}

方法二:将A设为索引后,转字典

d = df.set_index('A')['B'].to_dict()
d = df.set_index('id')['math'].to_dict()
# {1: 90, 2: 89, 3: 99, 4: 78, 5: 97, 6: 93}

建议使用方法二,速度更快。

实际问题中,常需要将原始表df,按某种方式聚合得到df2,需要得到df2的两列字典。可以直接联合使用 聚合groupby,agg和to_dict函数。

d = df.groupby('A')['B'].mean().to_dict()

如何得到不同性别的平均成绩字典

d = df.groupby('gender')['math'].mean().to_dict()
# {0: 94.75, 1: 83.5}

`

参考:What is the most efficient way to create a dictionary of two pandas Dataframe columns

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/springtostring/article/details/120978458

智能推荐

贪心算法(集合覆盖问题)-程序员宅基地

文章浏览阅读5k次,点赞4次,收藏44次。一、贪心算法概述贪心算法的核心思想可以总结为:贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解,如单源最短路经问题,最小生成树问题等。虽然在一些情况下,即使贪心算法不能得到整体最优解,但其最终结果却是最优解的很好近似。二、集合覆盖问题2.1 问题描述假设你办了个广播节目,要让国内的 8 个重要城市的听

安装Oracle11g出现INS-13001环境不满足最低要求_安装11g客户端环境不满足-程序员宅基地

文章浏览阅读1.4w次,点赞8次,收藏10次。第一次安装Oracle11g,就出现这个问题,就找了一些解决方案。现在总结一下。 出现这个问题是因为配置文件中烧了对应的系统,所以添加进去就行了。 首先打开解压后的database文件夹,找到stage文件夹,再找到cvu文件夹,进去后打开cvu_prereq.xml文件,在该文件中的CERTIFIED_SYSTEMS标签中添加如下内容:

一对一直播源码开发,疑难杂症排查— 播放杂音、噪音、回声问题_开发音频 播放 伴随嘶哑声-程序员宅基地

文章浏览阅读203次。今天要跟大家分享的是一对一直播源码开发,疑难杂症排查— 播放杂音、噪音、回声问题,相比于一对一直播源码开发中的视频而言,音频要敏感得多,视频画面有噪点、马赛克都还是可以勉强被接受,而声音一旦有任何瑕疵,人耳都会特别容易感觉到,而且难以忍受。一、问题现象常见的一对一直播源码开发中音频问题现象描述如下:电流音,爆音,滋滋声或者嘟嘟声声音断断续续,听不清楚回声,能听到自己说话的声音二、 问题排查1、参数配置问题在一对一直播源码开发中,音频是一个特别敏感的东西,涉及到许多参数配置,一_开发音频 播放 伴随嘶哑声

15张超详细的Python学习路线图,纯良心分享,零基础学习宝典-程序员宅基地

文章浏览阅读5.6k次,点赞3次,收藏23次。这是一篇 Python 入门指南,针对那些没有任何编程经验,从零开始学习 Python 的同学。不管你学习的出发点是兴趣驱动、拓展思维,还是工作需要、想要转行,都可以用此文作为一个参考。在这个信息爆炸的时代,以 “Python入门” 为关键字搜索出的结果成千上万。不少小白选手难免会东一榔头西一棒槌,最终看了很多文章,却仍没跨过新手那道门槛。结合自身的学习经验以及与很多自学者的沟通了解,我们整理出,供诸位尚未入门或刚入门不久的同学参考。..._python学习路线图

干货全拿走-用Excel构建股票量化交易模型_个人炒股模型-程序员宅基地

文章浏览阅读5.1k次,点赞3次,收藏23次。ExcelVBA写的几个量化算法和模型_个人炒股模型

mysql导出数据库报错,navicat 导入导出数据库报错的解决-程序员宅基地

文章浏览阅读1.1k次。在使用navicat导入导出数据功能时,导出没问题,导入总是报错,还遇到了中文乱码。在网上查了很多资料,比如使用了navicat的数据传输功能,但仍然报错,弄了几个小时都没解决。最后换了种思路,我直接用mysql自带的命令行来尝试导入导出,结果一试就成功无任何报错、乱码!这里顺便贴出网上的教程:MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cdMySQL中到bin文件夹的目..._mysqldump导入navicat错误

随便推点

OpenCV简单的图像灰度化_opencv 灰度图 mattype-程序员宅基地

文章浏览阅读9.2k次,点赞2次,收藏18次。OpenCV简单的图像灰度化图像灰度化算是数字图像处理中很简单的操作了,这里使用OpenCV简单尝试一下。_opencv 灰度图 mattype

【SpringBoot框架篇】37.使用gRPC实现远程服务调用_springboot使用grpc远程调用-程序员宅基地

文章浏览阅读941次,点赞28次,收藏14次。RPC(Remote Procedure Call)是一种用于实现分布式系统中不同节点之间通信的协议。它允许一个节点(称为客户端)调用另一个节点(称为服务器)上的远程方法,就像调用本地方法一样。RPC的目标是隐藏底层通信细节,使得远程调用过程对开发者透明。在RPC中,客户端通过发送请求消息给服务器来调用远程方法,服务器接收到请求后执行相应的方法,并将结果返回给客户端。RPC可以跨越不同的网络和操作系统,使得分布式系统中的不同节点能够进行高效的通信和协作。_springboot使用grpc远程调用

995. K 连续位的最小翻转次数_k连续位的最小反转-程序员宅基地

文章浏览阅读6.3k次。在仅包含 0 和 1 的数组 A 中,一次 K 位翻转包括选择一个长度为 K 的(连续)子数组,同时将子数组中的每个 0 更改为 1,而每个 1 更改为 0。返回所需的 K 位翻转的次数,以便数组没有值为 0 的元素。如果不可能,返回 -1。示例 1:输入:A = [0,1,0], K = 1输出:2解释:先翻转 A[0],然后翻转 A[2]。示例 2:输入:A..._k连续位的最小反转

MapBox 设置角度和朝向_mapbox 指北针-程序员宅基地

文章浏览阅读478次。【代码】MapBox 设置角度和朝向。_mapbox 指北针

计算字符串表达式的值-程序员宅基地

文章浏览阅读272次。public int expressionToResult(String str, Stack<Integer> number, Stack<Character> operator) { //将str转换为char char[] chars = str.toCharArray(); //遍历char数组 ..._怎样计算一个字符串表达式的值

STC89C52定时器中断详解_stc89c52 1ms定时器-程序员宅基地

文章浏览阅读904次,点赞22次,收藏15次。细节图解分析定时器0/1中断细节,T0和T1的使用,以及机器时序的计算........._stc89c52 1ms定时器