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循环监控远程端口的方法
Mar 14 Python
Python 常用string函数详解
May 30 Python
python链接oracle数据库以及数据库的增删改查实例
Jan 30 Python
编写多线程Python服务器 最适合基础
Sep 14 Python
python判断输入日期为第几天的实例
Nov 13 Python
使用python Telnet远程登录执行程序的方法
Jan 26 Python
Puppeteer使用示例详解
Jun 20 Python
python 矢量数据转栅格数据代码实例
Sep 30 Python
pandas 缺失值与空值处理的实现方法
Oct 12 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
Jun 01 Python
Django rest framework分页接口实现原理解析
Aug 21 Python
如何使用 Python 读取文件和照片的创建日期
Sep 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
Linux下进行MYSQL编程时插入中文乱码的解决方案
2007/03/15 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
2015/12/02 PHP
yii2使用GridView实现数据全选及批量删除按钮示例
2017/03/01 PHP
不错的asp中显示新闻的功能
2006/10/13 Javascript
Z-Blog中用到的js代码
2007/03/15 Javascript
使用原生js实现页面蒙灰(mask)效果示例代码
2014/06/20 Javascript
jquery实现一个简单好用的弹出框
2014/09/26 Javascript
jQuery时间轴插件使用详解
2015/07/16 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
2016/08/04 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
2016/12/28 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
Angular中$broadcast和$emit的使用方法详解
2017/05/22 Javascript
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
微信小程序按钮点击跳转页面详解
2019/05/06 Javascript
JS异步处理的进化史深入讲解
2019/08/25 Javascript
微信小程序常用的3种提示弹窗实现详解
2019/09/19 Javascript
Python多线程编程(四):使用Lock互斥锁
2015/04/05 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
2018/10/14 Python
对numpy中向量式三目运算符详解
2018/10/31 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
2019/06/12 Python
使用Python检测文章抄袭及去重算法原理解析
2019/06/14 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
2019/11/11 Python
pytorch masked_fill报错的解决
2020/02/18 Python
SQL Server笔试题
2012/01/10 面试题
SQL语言面试题
2013/08/27 面试题
中专三年学习的个人自我评价
2013/12/12 职场文书
感恩教育月活动总结
2014/07/07 职场文书
暑期培训班策划方案
2014/08/26 职场文书
科级干部群众路线教育实践活动对照检查材料思想汇报
2014/09/20 职场文书
交通事故和解协议书
2014/09/25 职场文书
毕业实习计划书
2015/01/16 职场文书
公司职员入党自传书
2015/06/26 职场文书
2015年秋季运动会加油稿
2015/07/22 职场文书
西部计划志愿者工作总结
2015/08/11 职场文书