pandas中遍历dataframe的每一个元素的实现


Posted in Python onOctober 23, 2019

假如有一个需求场景需要遍历一个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循环要快很多,善用这些高阶函数会让你事半功倍。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python控制台英汉汉英电子词典
Apr 23 Python
详解python中requirements.txt的一切
Mar 03 Python
Python实现单词翻译功能
Jun 06 Python
wxPython之解决闪烁的问题
Jan 15 Python
python 用下标截取字符串的实例
Dec 25 Python
python+webdriver自动化环境搭建步骤详解
Jun 03 Python
Python 动态导入对象,importlib.import_module()的使用方法
Aug 28 Python
python中对_init_的理解及实例解析
Oct 11 Python
python使用 cx_Oracle 模块进行查询操作示例
Nov 28 Python
如何基于Python创建目录文件夹
Dec 31 Python
Python基于smtplib协议实现发送邮件
Jun 03 Python
浅谈Python中的模块
Jun 10 Python
python list多级排序知识点总结
Oct 23 #Python
python实现的汉诺塔算法示例
Oct 23 #Python
在pandas中遍历DataFrame行的实现方法
Oct 23 #Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
Oct 23 #Python
Pandas DataFrame中的tuple元素遍历的实现
Oct 23 #Python
10行Python代码计算汽车数量的实现方法
Oct 23 #Python
在OpenCV里使用特征匹配和单映射变换的代码详解
Oct 23 #Python
You might like
用PHP伪造referer突破网盘禁止外连的代码
2008/06/15 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
JavaScript中的apply()方法和call()方法使用介绍
2012/07/25 Javascript
Bootstrap每天必学之栅格系统(布局)
2015/11/25 Javascript
页面get请求 中文参数方法乱码问题的快速解决方法
2016/05/31 Javascript
JS实现点击事件统计的简单实例
2016/07/10 Javascript
浅谈JS的基础类型与引用类型
2016/09/13 Javascript
Angular 2应用的8个主要构造块有哪些
2016/10/17 Javascript
jQuery实现模拟flash头像裁切上传功能示例
2016/12/11 Javascript
node.js入门教程之querystring模块的使用方法
2017/02/27 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
2017/04/21 Javascript
js实现添加删除表格(两种方法)
2017/04/27 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
Vue3.x源码调试的实现方法
2019/10/13 Javascript
p5.js临摹动态图形实现方法详解
2019/10/23 Javascript
解决vue-loader加载不上的问题
2020/10/21 Javascript
JS+CSS实现动态时钟
2021/02/19 Javascript
在Linux下调试Python代码的各种方法
2015/04/17 Python
Python中文件的写入读取以及附加文字方法
2019/01/23 Python
使用python读取.text文件特定行的数据方法
2019/01/28 Python
python list多级排序知识点总结
2019/10/23 Python
Pytorch之保存读取模型实例
2019/12/30 Python
python数据爬下来保存的位置
2020/02/17 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
Python切片列表字符串如何实现切换
2020/08/06 Python
泰国Robinson百货官网:购买知名品牌的商品
2020/02/08 全球购物
亚马逊新加坡官方网站:Amazon.sg
2020/03/25 全球购物
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
简述网络文件系统NFS,并说明其作用
2016/10/19 面试题
出国签证在职证明
2014/01/16 职场文书
代理协议书范本
2014/04/22 职场文书
C++程序员求职信
2014/05/07 职场文书
催款函范文
2015/06/24 职场文书
党校培训学习心得体会
2016/01/06 职场文书
PyTorch的Debug指南
2021/05/07 Python
Redis Cluster 集群搭建你会吗
2021/08/04 Redis