在数据处理时,时常需要将数据表的两列转化为字典映射形式
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
文章浏览阅读5k次,点赞4次,收藏44次。一、贪心算法概述贪心算法的核心思想可以总结为:贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解,如单源最短路经问题,最小生成树问题等。虽然在一些情况下,即使贪心算法不能得到整体最优解,但其最终结果却是最优解的很好近似。二、集合覆盖问题2.1 问题描述假设你办了个广播节目,要让国内的 8 个重要城市的听
文章浏览阅读1.4w次,点赞8次,收藏10次。第一次安装Oracle11g,就出现这个问题,就找了一些解决方案。现在总结一下。 出现这个问题是因为配置文件中烧了对应的系统,所以添加进去就行了。 首先打开解压后的database文件夹,找到stage文件夹,再找到cvu文件夹,进去后打开cvu_prereq.xml文件,在该文件中的CERTIFIED_SYSTEMS标签中添加如下内容:
文章浏览阅读203次。今天要跟大家分享的是一对一直播源码开发,疑难杂症排查— 播放杂音、噪音、回声问题,相比于一对一直播源码开发中的视频而言,音频要敏感得多,视频画面有噪点、马赛克都还是可以勉强被接受,而声音一旦有任何瑕疵,人耳都会特别容易感觉到,而且难以忍受。一、问题现象常见的一对一直播源码开发中音频问题现象描述如下:电流音,爆音,滋滋声或者嘟嘟声声音断断续续,听不清楚回声,能听到自己说话的声音二、 问题排查1、参数配置问题在一对一直播源码开发中,音频是一个特别敏感的东西,涉及到许多参数配置,一_开发音频 播放 伴随嘶哑声
文章浏览阅读5.6k次,点赞3次,收藏23次。这是一篇 Python 入门指南,针对那些没有任何编程经验,从零开始学习 Python 的同学。不管你学习的出发点是兴趣驱动、拓展思维,还是工作需要、想要转行,都可以用此文作为一个参考。在这个信息爆炸的时代,以 “Python入门” 为关键字搜索出的结果成千上万。不少小白选手难免会东一榔头西一棒槌,最终看了很多文章,却仍没跨过新手那道门槛。结合自身的学习经验以及与很多自学者的沟通了解,我们整理出,供诸位尚未入门或刚入门不久的同学参考。..._python学习路线图
文章浏览阅读5.1k次,点赞3次,收藏23次。ExcelVBA写的几个量化算法和模型_个人炒股模型
文章浏览阅读1.1k次。在使用navicat导入导出数据功能时,导出没问题,导入总是报错,还遇到了中文乱码。在网上查了很多资料,比如使用了navicat的数据传输功能,但仍然报错,弄了几个小时都没解决。最后换了种思路,我直接用mysql自带的命令行来尝试导入导出,结果一试就成功无任何报错、乱码!这里顺便贴出网上的教程:MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cdMySQL中到bin文件夹的目..._mysqldump导入navicat错误
文章浏览阅读9.2k次,点赞2次,收藏18次。OpenCV简单的图像灰度化图像灰度化算是数字图像处理中很简单的操作了,这里使用OpenCV简单尝试一下。_opencv 灰度图 mattype
文章浏览阅读941次,点赞28次,收藏14次。RPC(Remote Procedure Call)是一种用于实现分布式系统中不同节点之间通信的协议。它允许一个节点(称为客户端)调用另一个节点(称为服务器)上的远程方法,就像调用本地方法一样。RPC的目标是隐藏底层通信细节,使得远程调用过程对开发者透明。在RPC中,客户端通过发送请求消息给服务器来调用远程方法,服务器接收到请求后执行相应的方法,并将结果返回给客户端。RPC可以跨越不同的网络和操作系统,使得分布式系统中的不同节点能够进行高效的通信和协作。_springboot使用grpc远程调用
文章浏览阅读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连续位的最小反转
文章浏览阅读478次。【代码】MapBox 设置角度和朝向。_mapbox 指北针
文章浏览阅读272次。public int expressionToResult(String str, Stack<Integer> number, Stack<Character> operator) { //将str转换为char char[] chars = str.toCharArray(); //遍历char数组 ..._怎样计算一个字符串表达式的值
文章浏览阅读904次,点赞22次,收藏15次。细节图解分析定时器0/1中断细节,T0和T1的使用,以及机器时序的计算........._stc89c52 1ms定时器