Pandas DataFrame中的tuple元素遍历的实现


Posted in Python onOctober 23, 2019

pandas中遍历dataframe的每一个元素

假如有一个需求场景需要遍历一个csv或excel中的每一个元素,判断这个元素是否含有某个关键字

那么可以用python的pandas库来实现。

方法一:

pandas的dataframe有一个很好用的函数applymap,它可以把某个函数应用到dataframe的每一个元素上,而且比常规的for循环去遍历每个元素要快很多。如下是相关代码:

import pandas as pd
data = [["str","ewt","earw"],["agter","awetg","aeorgh"]]
dataframe1 = pd.DataFrame(data=data,columns=["name1","name2","name3"])
print(dataframe1)
bool_array = dataframe1.applymap(lambda x:"w" in x)
out_array = dataframe1[bool_array]
print(out_array)

>>
  name1 name2  name3
0  str  ewt  earw
1 agter awetg aeorgh

 name1 name2 name3
0  NaN  ewt earw
1  NaN awetg  NaN

代码中,bool_array为一个逻辑矩阵,满足条件元素的位置为true,否则为false。然后通过逻辑矩阵去索引dataframe1,就可以得出满足条件的元素。

方法二:

第一种方法是一次性遍历每个元素,这样不好分column去处理,那换一种方式可以每次遍历一列

#接上面代码
file_columns = dataframe1.columns.tolist()
for column in file_columns:
  bool_index = dataframe1[column].str.contains("w")
  filter_data = dataframe1[column][bool_index] 
  print(filter_data)

>>
Series([], Name: name1, dtype: object)
0   ewt
1  awetg
Name: name2, dtype: object
0  earw
Name: name3, dtype: object

代码种 Series.str.contains 是 Series 才有的一个操作。另外,filter_data只输出每一列中满足条件的元素,更方便下一步的操作。

简单说明:

针对pandas的dataframe和series,有强大的高阶函数:apply,applymap和map函数等,它们比简单的for循环要快很多,善用这些高阶函数会让你事半功倍。

Pandas DataFrame中的tuple元素遍历

在用Word2vec计算出词语的相似度之后,得到的DataFrame格式如下:

1. 索引(index)为输入的关键词,从第0列开始为相似度最高的词语和它的余弦相似度。

2. 这个DataFrame 中每一个元素,比如(通话, 0.21321064233779907)的格式为tuple。

输入数据:

                            0                           1 
银行  (通话, 0.21321064233779907)   (钻石卡, 0.1743093729019165)  
手机  (想要, 0.21755412220954895)   (长时间, 0.16086308658123016)

期望输出的数据

1. 只取相似度最高的词语,丢弃余弦相似度。

2. 把关键词从索引中取出来,单独作为1列。

期望输出:

 核心关键词   0    1 
0    银行  通话  钻石卡 
1    手机  想要  长时间

Python 实现的代码:

主要使用1)applymap,2)lambda,3)reset_index,4)rename

import pandas as pd
 
s_df_untuple = s_df.applymap(lambda x: x[0]) # 对dataframe中所有元素,只取tuple中的第0个
s_df_untuple = s_df_untuple.reset_index() # 把索引变为单独的一列
s_df_untuple.rename(columns={"index": '核心关键词'}, inplace=True) # 对索引这一列重命名

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python3实现连接SQLite数据库的方法
Aug 23 Python
使用Python的Flask框架表单插件Flask-WTF实现Web登录验证
Jul 12 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
Apr 26 Python
pyqt5 实现 下拉菜单 + 打开文件的示例代码
Jun 20 Python
Tensorflow累加的实现案例
Feb 05 Python
PyCharm 专业版安装图文教程
Feb 20 Python
Python os模块常用方法和属性总结
Feb 20 Python
python 追踪except信息方式
Apr 25 Python
Python 中由 yield 实现异步操作
May 04 Python
详解python如何引用包package
Jun 07 Python
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
May 25 Python
Python实现老照片修复之上色小技巧
Oct 16 Python
10行Python代码计算汽车数量的实现方法
Oct 23 #Python
在OpenCV里使用特征匹配和单映射变换的代码详解
Oct 23 #Python
手把手教你Python yLab的绘制折线图的画法
Oct 23 #Python
Python之Numpy的超实用基础详细教程
Oct 23 #Python
Python从列表推导到zip()函数的5种技巧总结
Oct 23 #Python
Python箱型图绘制与特征值获取过程解析
Oct 22 #Python
Python使用贪婪算法解决问题
Oct 22 #Python
You might like
文章推荐系统(三)
2006/10/09 PHP
第七节--类的静态成员
2006/11/16 PHP
php 什么是PEAR?(第二篇)
2009/03/19 PHP
PHP 设计模式之观察者模式介绍
2012/02/22 PHP
php一维二维数组键排序方法实例总结
2014/11/13 PHP
PHP Swoole异步读取、写入文件操作示例
2019/10/24 PHP
Laravel框架自定义分页样式操作示例
2020/01/26 PHP
javascript RadioButtonList获取选中值
2009/04/09 Javascript
jquery中获得$.ajax()事件返回的值并添加事件的方法
2010/04/15 Javascript
jQuery编写widget的一些技巧分享
2010/10/28 Javascript
7个JS基础知识总结
2014/03/05 Javascript
JavaScript基础语法、dom操作树及document对象
2014/12/02 Javascript
jQuery中html()方法用法实例
2014/12/25 Javascript
checkbox批量选中,获取选中项的值的简单实例
2016/06/28 Javascript
关于动态执行代码(js的Eval)实例详解
2016/08/15 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
React Native仿美团下拉菜单的实例代码
2017/08/08 Javascript
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
Python实现自动上京东抢手机
2018/02/06 Python
Python实现线性判别分析(LDA)的MATLAB方式
2019/12/09 Python
python目标检测给图画框,bbox画到图上并保存案例
2020/03/10 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
2020/03/10 Python
python实现贪吃蛇双人大战
2020/04/18 Python
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
美赞臣营养马来西亚旗舰店:Enfagrow马来西亚
2019/07/26 全球购物
初级Java程序员面试题
2016/03/03 面试题
生产主管岗位职责
2013/11/10 职场文书
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
大学生安全责任书
2014/07/25 职场文书
党员干部形式主义个人整改措施
2014/09/17 职场文书
2016天猫双十一广告语
2016/01/28 职场文书
利用javaScript处理常用事件详解
2021/04/14 Javascript
详解Mysql和Oracle之间的误区
2021/05/18 MySQL
CentOS7安装MySQL8的超级详细教程(无坑!)
2022/06/10 Servers