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

智能推荐

字符数组和字符串数组中的‘\0‘尾零存在的问题_字符数组最后一位是\0吗-程序员宅基地

文章浏览阅读2.9k次,点赞5次,收藏16次。字符数组和字符串数组中的‘\0‘尾零存在的问题_字符数组最后一位是\0吗

项目启动报错_failed to resolve loader: cache-loader-程序员宅基地

文章浏览阅读7.7k次。npm run serve 启动项目报错vue.js 进行初始化遇到的关于core-js的错误@core-js/modules/es6.array.find-index]解决链接:https://blog.csdn.net/qq_40999917/article/details/106575086Failed to compile with 60 errors ..._failed to resolve loader: cache-loader

百度AICA首席AI架构师培养计划第七期毕业,大模型深入产业见成果_百度aica首席ai架构师培养计划第七期毕业 大模型深入产业见成果-程序员宅基地

文章浏览阅读377次。5年毕业410人的“小班课”,企业技术高管争着来。_百度aica首席ai架构师培养计划第七期毕业 大模型深入产业见成果

linux--vim编辑器跳转到指定行_vi 快速跳转18-程序员宅基地

文章浏览阅读6.3k次,点赞4次,收藏2次。输入 :,进入末行模式,如果想要跳转到999行,那么输入:999,冒号后面的数字即为跳转的行数。_vi 快速跳转18

html+游戏转盘,javascript+HTML5 Canvas绘制转盘抽奖-程序员宅基地

文章浏览阅读521次。之前做过的项目中,有需要抽奖转盘功能的。项目已经完工一段时间了,也没出现什么严重的bug,所以现在拎出来分享给大家。功能需求1、转盘要美观,转动效果流畅。2、转盘上需要显示奖品图片,并且奖品是后台读取的照片和名字。3、转动动画完成后要有相应提示。4、获取的奖品具体算法在数据库里操作,前端只提供最后的效果展示。知识要点1、引用了一个jq插件:awardRotate,用来实现更智能化的转动。2、使用c..._html 怎么画fps游戏里的平面罗盘

什么是证书吊销列表(CRL)?吊销列表起什么作用_crl列表是什么-程序员宅基地

文章浏览阅读343次。证书吊销列表(Certificate Revocation List ,简称: CRL) 是 PKI 系统中的一个结构化数据文件,该文件包含了证书颁发机构 (CA) 已经吊销的证书的序列号及其吊销日期。 CRL 文件中还包含证书颁发机构信息、吊销列表失效时间和下一次更新时间,以及采用的签名算法等。_crl列表是什么

随便推点

单网卡实现 双IP 双网段(内外网)同时运行_单网卡双ip-程序员宅基地

文章浏览阅读3.5k次。5.打开高级(V)如下图,添加内网IP,设置跃点(外网跃点设置小,内网跃点设置大,跃点越小优先级越高),关闭自动跃点设置一个数(这里有一个问题:如果关闭自动跃点每次打开自动勾选自动跃点的一般是网卡驱动问题重装驱动可以解决),不懂设置啥跃点的就和我一样设置10、20,接口跃点设置为11。理论上都设置静态IP后把外网跃点设置小,内网跃点设置大,关闭自动跃点设置同一个接口跃点数,在通过命令提示符添加内网网址走内网网关就可以了)。子网掩码:主要是第一个数根据自己的内网掩码来,后面0就好(255.0.0.0)_单网卡双ip

POI页眉页脚生成页码,首页无页码_java poi word生成页码-程序员宅基地

文章浏览阅读990次。对于网上主流的方法只适用于全文档生成页码,无法适用首页或前几页需要将页码屏蔽的情况(本人只用于直接代码使用POI从无到有生成一个文档,不是读取已有文档再编辑的情况)_java poi word生成页码

WPF 自定义DateControl DateTime控件-程序员宅基地

文章浏览阅读533次。原文:WPF 自定义DateControl DateTime控件自定义日期控件,月份选择。如下是日期的一些效果图。具体的样式、颜色可以根据下面的代码,自己调节即可1、日期控件的界面<UserControl x:Class="WpfApplication10.DateSelectControl"xmlns="http://schem..._wpf 时间控件美化

element 搜索匹配_Vue Element 分组+多选+可搜索Select选择器实现示例-程序员宅基地

文章浏览阅读1.1k次。最终效果(http://47.98.205.88:3000/mult_group_selection)见下图。实际就是将element三种官方select实例整合起来,同时实现分组+多选+可搜索,此外点击一级分组名可以实现全选/全不选。供有相关需求的开发者参考准备工作:除了vue脚手架、element等必要包之外。该项目还用到了linq.js(https://github.com/mihaifm/..._vue的select将选项进行分组和筛选选项可以同时使用吗

PTA实验7-3-2 查找指定字符 (15分)_pta7-3 字符串去特定字符 分数 20 作者 苏国煜 单位 闽江学院 输入字符串s和字符c-程序员宅基地

文章浏览阅读2.5k次,点赞3次,收藏5次。本题要求编写程序,从给定字符串中查找某指定的字符。输入格式:输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。输出格式:如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。输入样例1:mprogramming输出样例1:index = 7输入样例2:a1..._pta7-3 字符串去特定字符 分数 20 作者 苏国煜 单位 闽江学院 输入字符串s和字符c

ACM-ICPC 2018 徐州赛区网络预赛H_acm徐州网络赛a-程序员宅基地

文章浏览阅读460次。 Ryuji is not a good student, and he doesn't want to study. But there are n books he should learn, each book has its knowledge a[i]a[i].Unfortunately, the longer he learns, the fewer he gets.Tha..._acm徐州网络赛a

推荐文章

热门文章

相关标签