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 相关文章推荐
python del()函数用法
Mar 24 Python
python中将字典转换成其json字符串
Jul 16 Python
python批量同步web服务器代码核心程序
Sep 01 Python
Python爬取三国演义的实现方法
Sep 12 Python
pandas带有重复索引操作方法
Jun 08 Python
widows下安装pycurl并利用pycurl请求https地址的方法
Oct 15 Python
python文件操作的简单方法总结
Nov 07 Python
python中setuptools的作用是什么
Jun 19 Python
Python爬虫爬取微信朋友圈
Aug 06 Python
详解Python流程控制语句
Oct 28 Python
Python如何使用logging为Flask增加logid
Mar 30 Python
写一个Python脚本自动爬取Bilibili小视频
Apr 24 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
xml+php动态载入与分页
2006/10/09 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
2015/04/21 PHP
PHP比较运算符的详细介绍
2015/09/29 PHP
PHP上传文件参考配置大文件上传
2015/12/16 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
PHP xpath()函数讲解
2019/02/11 PHP
浅谈PHP无限极分类原理
2019/03/14 PHP
使用Rancher在K8S上部署高性能PHP应用程序的教程
2020/07/10 PHP
一步一步教你写一个jQuery的插件教程(Plugin)
2009/09/03 Javascript
使用jQuery UI的tooltip函数修饰title属性的气泡悬浮框
2013/06/24 Javascript
JavaScript全排列的六种算法 具体实现
2013/06/29 Javascript
基于jQuery实现的向下滑动二级菜单效果代码
2015/08/31 Javascript
jQuery实现返回顶部按钮和scroll滚动功能[带动画效果]
2017/07/05 jQuery
JavaScript定义函数的三种实现方法
2017/09/23 Javascript
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
2018/05/05 Javascript
微信小程序封装的HTTP请求示例【附升级版】
2019/05/11 Javascript
vue+django实现一对一聊天功能的实例代码
2019/07/17 Javascript
解决axios post 后端无法接收数据的问题
2019/10/29 Javascript
Python中实现常量(Const)功能
2015/01/28 Python
python实现pdf转换成word/txt纯文本文件
2018/06/07 Python
Python返回数组/List长度的实例
2018/06/23 Python
Python对excel文档的操作方法详解
2018/12/10 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
python三引号输出方法
2019/02/27 Python
PyQt5重写QComboBox的鼠标点击事件方法
2019/06/25 Python
Python协程操作之gevent(yield阻塞,greenlet),协程实现多任务(有规律的交替协作执行)用法详解
2019/10/14 Python
python实现两个一维列表合并成一个二维列表
2019/12/02 Python
Python3搭建http服务器的实现代码
2020/02/11 Python
Python 使用 environs 库定义环境变量的方法
2020/02/25 Python
css3 利用transform打造走动的2D时钟
2020/10/20 HTML / CSS
英国香水店:The Perfume Shop
2017/03/27 全球购物
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
2014年迎新年活动方案
2014/02/19 职场文书
学校招生宣传广告词
2014/03/19 职场文书
户籍证明格式
2014/09/15 职场文书
golang通过递归遍历生成树状结构的操作
2021/04/28 Golang