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中RawString的理解介绍
Jul 07 Python
Django框架模板注入操作示例【变量传递到模板】
Dec 19 Python
Python实现多进程的四种方式
Feb 22 Python
django的ORM操作 删除和编辑实现详解
Jul 24 Python
python使用 __init__初始化操作简单示例
Sep 26 Python
python基于opencv检测程序运行效率
Dec 28 Python
使用Tensorflow将自己的数据分割成batch训练实例
Jan 20 Python
动态设置django的model field的默认值操作步骤
Mar 30 Python
python数据处理——对pandas进行数据变频或插值实例
Apr 22 Python
Python3爬虫关于识别点触点选验证码的实例讲解
Jul 30 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
Nov 11 Python
Python如何使用神经网络进行简单文本分类
Feb 25 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 server时遇到的中文编码问题
2009/06/11 PHP
PHP面向对象学习笔记之一 基础概念
2012/10/06 PHP
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
php数组索引的Key加引号和不加引号的区别
2014/08/19 PHP
PHP框架Swoole定时器Timer特性分析
2014/08/19 PHP
PHP中Header使用的HTTP协议及常用方法小结
2014/11/04 PHP
php把数组值转换成键的方法
2015/07/13 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
2016/07/28 PHP
php die()与exit()的区别实例详解
2016/12/03 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
Javascript & DHTML 实例编程(教程)基础知识
2007/06/02 Javascript
JS实现一个列表中包含上移下移删除等功能
2014/09/24 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
解决JS无法调用Controller问题的方法
2015/12/31 Javascript
JavaScript时间操作之年月日星期级联操作
2016/01/15 Javascript
Javascript的无new构建实例详解
2016/05/15 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
深入理解jQuery3.0的domManip函数
2016/09/01 Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
2017/03/04 Javascript
详解VUE-地区选择器(V-Distpicker)组件使用心得
2018/05/07 Javascript
vue-router传参用法详解
2019/01/19 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
js实现石头剪刀布游戏
2020/10/11 Javascript
[03:12]2016完美“圣”典风云人物:单车专访
2016/12/02 DOTA
python用字典统计单词或汉字词个数示例
2014/04/22 Python
Python搭建HTTP服务器和FTP服务器
2017/03/09 Python
python正则表达式爬取猫眼电影top100
2018/02/24 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
使用Python实现将多表分批次从数据库导出到Excel
2020/05/15 Python
CSS3打造百度贴吧的3D翻牌效果示例
2017/01/04 HTML / CSS
牵手50香港:专为黄金岁月的单身人士而设的交友网站
2020/08/14 全球购物
领导班子作风建设年个人整改措施
2014/09/29 职场文书
晋江市人民政府党组群众路线教育实践活动整改方案
2014/10/25 职场文书
2019学生会干事辞职信
2019/06/27 职场文书