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框架django基础指南
Sep 08 Python
Python selenium 三种等待方式详解(必会)
Sep 15 Python
Python调用C++程序的方法详解
Jan 24 Python
pandas分别写入excel的不同sheet方法
Dec 11 Python
详解python数据结构和算法
Apr 18 Python
Python pandas用法最全整理
Aug 04 Python
Python如何使用k-means方法将列表中相似的句子归类
Aug 08 Python
django中media媒体路径设置的步骤
Nov 15 Python
python常用数据重复项处理方法
Nov 22 Python
pytorch实现特殊的Module--Sqeuential三种写法
Jan 15 Python
python自动点赞功能的实现思路
Feb 26 Python
利用python对excel中一列的时间数据更改格式操作
Jul 14 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连接mssql数据库的几种方法
2013/02/21 PHP
php遍历目录与文件夹的多种方法详解
2013/11/14 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
2016/02/15 PHP
php实现文章置顶功能的方法
2016/10/20 PHP
微信接口生成带参数的二维码
2017/07/31 PHP
php源码的使用方法讲解
2019/09/26 PHP
PHP数组Key强制类型转换实现原理解析
2020/09/01 PHP
js 加载时自动调整图片大小
2008/05/28 Javascript
javascript appendChild,innerHTML,join性能比较代码
2009/08/29 Javascript
javascript OFFICE控件测试代码
2009/12/08 Javascript
javascript 循环调用示例介绍
2013/11/20 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
js实现鼠标划过给div加透明度的方法
2015/05/25 Javascript
元素绑定click点击事件方法
2015/06/08 Javascript
Vue.js实现无限加载与分页功能开发
2016/11/03 Javascript
EasyUI学习之Combobox下拉列表(1)
2016/12/29 Javascript
JavaScript实现开关等效果
2017/09/08 Javascript
vue.js使用3DES加密的方法示例
2018/05/18 Javascript
nodejs 生成和导出 word的实例代码
2018/07/31 NodeJs
Electron 如何调用本地模块的方法
2019/02/01 Javascript
JavaScript实现点击切换验证码及校验
2021/01/10 Javascript
Python实现的爬虫功能代码
2017/06/24 Python
python批量导入数据进Elasticsearch的实例
2018/05/30 Python
git查看、创建、删除、本地、远程分支方法详解
2020/02/18 Python
python 两种方法删除空文件夹
2020/09/29 Python
Python+OpenCV检测灯光亮点的实现方法
2020/11/02 Python
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
摩顿布朗英国官方网上商店:奢华沐浴、身体和头发护理
2016/10/29 全球购物
Volcom法国官网:美国冲浪滑板品牌
2017/05/25 全球购物
甜品蛋糕店创业计划书范文
2014/02/06 职场文书
贫困生助学金感谢信
2015/01/21 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
晶体管来复再生式二管收音机
2021/04/22 无线电
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS
python 详解turtle画爱心代码
2022/02/15 Python
MySQL创建管理KEY分区
2022/04/13 MySQL