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 ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
Jun 10 Python
python读写ini配置文件方法实例分析
Jun 30 Python
深入浅析Python中join 和 split详解(推荐)
Jun 30 Python
Python使用sort和class实现的多级排序功能示例
Aug 15 Python
python 判断参数为Nonetype类型或空的实例
Oct 30 Python
python实现简单的文字识别
Nov 27 Python
python set内置函数的具体使用
Jul 02 Python
pytorch方法测试详解——归一化(BatchNorm2d)
Jan 15 Python
PageFactory设计模式基于python实现
Apr 14 Python
python录音并调用百度语音识别接口的示例
Dec 01 Python
用python对excel查重
Dec 07 Python
Django框架之路由用法
Jun 10 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版(3)
2006/10/09 PHP
浅谈php中mysql与mysqli的区别分析
2013/06/10 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
动态刷新 dorado树的js代码
2009/06/12 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
JQuery1.6 使用方法三
2011/11/23 Javascript
JS分页控件 可用于无刷新分页
2013/07/23 Javascript
javascript学习笔记(一)基础知识
2014/09/30 Javascript
基于jQuery Tipso插件实现消息提示框特效
2016/03/16 Javascript
基于JS实现导航条flash导航条
2016/06/17 Javascript
JS事件添加和移出的兼容写法示例
2016/06/20 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
2016/07/12 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
2016/10/27 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
vue 中filter的多种用法
2018/04/26 Javascript
在JS循环中使用async/await的方法
2018/10/12 Javascript
Vue+Koa2 打包后进行线上部署的教程详解
2019/07/31 Javascript
全面解析JavaScript Module模式
2020/07/24 Javascript
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
详解python 注释、变量、类型
2018/08/10 Python
python得到windows自启动列表的方法
2018/10/14 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
python 使用递归实现打印一个数字的每一位示例
2020/02/27 Python
Python tcp传输代码实例解析
2020/03/18 Python
如何基于Python Matplotlib实现网格动画
2020/07/20 Python
数字漫画:comiXology
2020/06/13 全球购物
农场厂长岗位职责
2013/12/28 职场文书
爱与责任演讲稿
2014/05/20 职场文书
学生安全责任书范本
2014/07/24 职场文书
副乡长群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
2014机关干部学习“焦裕禄精神”思想汇报
2014/09/19 职场文书
文化苦旅读书笔记
2015/06/29 职场文书
企业反腐倡廉心得体会
2015/08/15 职场文书
实习报告范文
2019/07/30 职场文书
redis配置文件中常用配置详解
2021/04/14 Redis