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返回昨天日期的方法
May 13 Python
Python的Django框架中自定义模版标签的示例
Jul 20 Python
Python实现获取域名所用服务器的真实IP
Oct 25 Python
Python之py2exe打包工具详解
Jun 14 Python
python使用opencv驱动摄像头的方法
Aug 03 Python
在python中安装basemap的教程
Sep 20 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
Jan 05 Python
浅谈Python大神都是这样处理XML文件的
May 31 Python
Python unittest discover批量执行代码实例
Sep 08 Python
浅析Python的命名空间与作用域
Nov 25 Python
matplotlib实现数据实时刷新的示例代码
Jan 05 Python
Python使用Beautiful Soup(BS4)库解析HTML和XML
Jun 05 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
PHP 采集获取指定网址的内容
2010/01/05 PHP
php excel类 phpExcel使用方法介绍
2010/08/21 PHP
用PHP实现Ftp用户的在线管理
2012/02/16 PHP
php判断用户是否手机访问代码
2015/06/08 PHP
PHP实现获取文件后缀名的几种常用方法
2015/08/08 PHP
解决Laravel blade模板转义html标签的问题
2019/09/03 PHP
基于JavaScript实现添加到购物车效果附源码下载
2016/08/22 Javascript
vue子组件使用自定义事件向父组件传递数据
2017/05/27 Javascript
详解Vue的computed(计算属性)使用实例之TodoList
2017/08/07 Javascript
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
深入剖析JavaScript instanceof 运算符
2019/06/14 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
2019/06/18 jQuery
vue项目出现页面空白的解决方案
2019/10/31 Javascript
Vue设置长时间未操作登录自动到期返回登录页
2020/01/22 Javascript
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
Python 探针的实现原理
2016/04/23 Python
tensorflow建立一个简单的神经网络的方法
2018/02/10 Python
Django 使用logging打印日志的实例
2018/04/28 Python
Python Web框架之Django框架Form组件用法详解
2019/08/16 Python
Python实现RGB与HSI颜色空间的互换方式
2019/11/27 Python
CSS3中Transition动画属性用法详解
2016/07/04 HTML / CSS
德国帽子专家:Hutshopping
2019/11/03 全球购物
服装设计专业毕业生推荐信
2013/11/09 职场文书
质检员的岗位职责
2013/11/15 职场文书
如何写一份好的自荐信
2014/01/02 职场文书
2014年计算机专业个人自我评价
2014/01/19 职场文书
购房意向书
2014/08/30 职场文书
2014年社区卫生工作总结
2014/12/18 职场文书
不尊敬老师的检讨书
2014/12/21 职场文书
大学生考试作弊被抓检讨书
2014/12/27 职场文书
质检员岗位职责
2015/02/03 职场文书
惊天动地观后感
2015/06/10 职场文书
创业计划书之闲置物品置换中心
2019/12/25 职场文书
利用JavaScript写一个简单计算器
2021/11/27 Javascript
mysql的单列多值存储实例详解
2022/04/05 MySQL
java实现web实时消息推送的七种方案
2022/07/23 Java/Android