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

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

方法一:使用zip

d = dict(zip(df['A'],df['B']))
import pandas as pd
import numpy as nptest_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

pandas dataframe 两列转字典相关推荐

  1. pandas计算dataframe两列数据值相等的行号、取出DataFrame中两列值相等的行号

    pandas计算dataframe两列数据值相等的行号.取出DataFrame中两列值相等的行号 目录 pandas计算dataframe两列数据值相等的行号.取出DataFrame中两列值相等的行号

  2. Python语言学习:利用pandas对两列字段元素求差集(对比两列字段所有元素的异同)

    Python语言学习:利用pandas对两列字段元素求差集(对比两列字段所有元素的异同) 目录 利用pandas对两列字段元素求差集(对比两列字段所有元素的异同) 输出结果 实现代码 利用pandas ...

  3. pandas 根据两列数据筛选dataframe

    如果是筛选某一列中等于某个值的那一行,可以使用: dataframe[dataframe['列名'] == "具体值"] 如果筛选某两列中的值等于具体值的那几行,可以使用: sea ...

  4. pandas去除两列中同一行有相同元素的数据——数据分析必备技能(5)

    废话不多说,直接跟小编进入今天的正文. 假设现在有一数据集,如下: import pandas as pdname = ['bob', 'mike','lisa','jay','alen','book ...

  5. pandas dataframe调整列的位置

    pandas dataframe在指定的位置添加一列!简单和通用方法_我是张张的博客-CSDN博客

  6. pandas操作两列日期类型数据相减并要求结果为整数类型

    在 pandas 中,两列日期类型数据相减可以使用减法运算符,结果会得到一个 Timedelta 类型.如果要求结果为整数类型,可以使用其 dt 属性中的 total_seconds 方法,来获取时间 ...

  7. Dataframe两列值去重

    有时候处理数据的时候会遇到这样的情况,尽管两列合在一起后表达的意思一样,但无法直接把他们去重 因此我们可以在去重前多进行一步,把两列数据合并成 list 后去重,再把他们分开 # 1.合并数据,转换成 ...

  8. dataframe两列相乘构造新特征

    假如我们要构建新特征b, 目的是从a中筛选出数值在4~6之间的数据,如果符合就是True,否则就是False. 那么代码如下: import pandas as pd lists=pd.DataFra ...

  9. python怎么将两列数据比大小_python – 使用大pandas比较两列

    您可以使用 np.where.如果cond是一个布尔数组,并且A和B是数组,那么 C = np.where(cond, A, B) 定义C等于A,其中cond为True,而B为cond,则为False ...

最新文章

  1. linux vi编辑 整理
  2. Node.js 究竟是什么?
  3. js 动态 添加 tabel 表格
  4. linux c 获取文件行数
  5. 删除桌面上淘宝商城,高清电影,精彩小游戏图标
  6. VC窗口形状的绘制---SetWindowRgn
  7. 关于DOM2级事件的事件捕获和事件冒泡
  8. 前端开发 表单标签 完成一个简单登陆的效果 0228
  9. redis 首次请求_Redis主从复制
  10. 网易MCtalk泛娱乐科技峰会:泛娱乐的未来时代属于科技创新者
  11. Q120:PBRT-V3,“直接光照”积分器(14.3章节)(翻译不下去了)
  12. 看雪CTF.TSRC 2018 团队赛 第十二题『移动迷宫』 解题思路
  13. 关于hibernate插入数据时的乱码问题
  14. 算法竞赛入门经典题解目录
  15. html实心向右三角形,css 如何在html页面上输出一个左三角形或右三角形呢?
  16. 关于大学生寝室点外卖的调研报告
  17. python如何提交作业_提交作业
  18. Leetcode_603. 连续空余座位
  19. Egress-Assess-出口数据安全功能测试
  20. 12分钟入门python基础-计算机视觉方向

热门文章

  1. Oracle帐号转载
  2. JAVAEE——SSH项目实战05:用户注册、登陆校验拦截器、员工拜访客户功能和MD5加密...
  3. 别等待-想到什么就去做
  4. 【停车场车辆管理系统】从零搭建——项目分析
  5. 马:ma一个与代码无关的隐形眼镜的度数换算
  6. 关于DELL EqualLogic PS6100存储及数据恢复办法的研究
  7. android分页查询垃圾短信数据库信息
  8. Memcached使用入门
  9. 2019地理科学大会上的演讲稿(节选):空间大数据下的智慧地理信息
  10. 手机虚拟按键始终隐藏 | 触摸屏幕时出现