pandas dataframe 两列转字典
在数据处理时,时常需要将数据表的两列转化为字典映射形式
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 两列转字典相关推荐
- pandas计算dataframe两列数据值相等的行号、取出DataFrame中两列值相等的行号
pandas计算dataframe两列数据值相等的行号.取出DataFrame中两列值相等的行号 目录 pandas计算dataframe两列数据值相等的行号.取出DataFrame中两列值相等的行号
- Python语言学习:利用pandas对两列字段元素求差集(对比两列字段所有元素的异同)
Python语言学习:利用pandas对两列字段元素求差集(对比两列字段所有元素的异同) 目录 利用pandas对两列字段元素求差集(对比两列字段所有元素的异同) 输出结果 实现代码 利用pandas ...
- pandas 根据两列数据筛选dataframe
如果是筛选某一列中等于某个值的那一行,可以使用: dataframe[dataframe['列名'] == "具体值"] 如果筛选某两列中的值等于具体值的那几行,可以使用: sea ...
- pandas去除两列中同一行有相同元素的数据——数据分析必备技能(5)
废话不多说,直接跟小编进入今天的正文. 假设现在有一数据集,如下: import pandas as pdname = ['bob', 'mike','lisa','jay','alen','book ...
- pandas dataframe调整列的位置
pandas dataframe在指定的位置添加一列!简单和通用方法_我是张张的博客-CSDN博客
- pandas操作两列日期类型数据相减并要求结果为整数类型
在 pandas 中,两列日期类型数据相减可以使用减法运算符,结果会得到一个 Timedelta 类型.如果要求结果为整数类型,可以使用其 dt 属性中的 total_seconds 方法,来获取时间 ...
- Dataframe两列值去重
有时候处理数据的时候会遇到这样的情况,尽管两列合在一起后表达的意思一样,但无法直接把他们去重 因此我们可以在去重前多进行一步,把两列数据合并成 list 后去重,再把他们分开 # 1.合并数据,转换成 ...
- dataframe两列相乘构造新特征
假如我们要构建新特征b, 目的是从a中筛选出数值在4~6之间的数据,如果符合就是True,否则就是False. 那么代码如下: import pandas as pd lists=pd.DataFra ...
- python怎么将两列数据比大小_python – 使用大pandas比较两列
您可以使用 np.where.如果cond是一个布尔数组,并且A和B是数组,那么 C = np.where(cond, A, B) 定义C等于A,其中cond为True,而B为cond,则为False ...
最新文章
- linux vi编辑 整理
- Node.js 究竟是什么?
- js 动态 添加 tabel 表格
- linux c 获取文件行数
- 删除桌面上淘宝商城,高清电影,精彩小游戏图标
- VC窗口形状的绘制---SetWindowRgn
- 关于DOM2级事件的事件捕获和事件冒泡
- 前端开发 表单标签 完成一个简单登陆的效果 0228
- redis 首次请求_Redis主从复制
- 网易MCtalk泛娱乐科技峰会:泛娱乐的未来时代属于科技创新者
- Q120:PBRT-V3,“直接光照”积分器(14.3章节)(翻译不下去了)
- 看雪CTF.TSRC 2018 团队赛 第十二题『移动迷宫』 解题思路
- 关于hibernate插入数据时的乱码问题
- 算法竞赛入门经典题解目录
- html实心向右三角形,css 如何在html页面上输出一个左三角形或右三角形呢?
- 关于大学生寝室点外卖的调研报告
- python如何提交作业_提交作业
- Leetcode_603. 连续空余座位
- Egress-Assess-出口数据安全功能测试
- 12分钟入门python基础-计算机视觉方向