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创建只读属性对象的方法(ReadOnlyObject)
Feb 10 Python
在Python中使用Neo4j数据库的教程
Apr 16 Python
python简单实现基于SSL的IRC bot实例
Jun 15 Python
Python3实现Web网页图片下载
Jan 28 Python
Python 读写文件的操作代码
Sep 20 Python
Django 内置权限扩展案例详解
Mar 04 Python
详细介绍Python进度条tqdm的使用
Jul 31 Python
pyinstaller打包程序exe踩过的坑
Nov 19 Python
Python语法垃圾回收机制原理解析
Mar 25 Python
python线程里哪种模块比较适合
Aug 02 Python
python爬取2021猫眼票房字体加密实例
Feb 19 Python
Python如何把不同类型数据的json序列化
Apr 30 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代码
2008/09/10 PHP
Zend Framework过滤器Zend_Filter用法详解
2016/12/09 PHP
基于php编程规范(详解)
2017/08/17 PHP
js escape,unescape解决中文乱码问题的方法
2010/05/26 Javascript
JS 修改URL参数(实现代码)
2013/07/08 Javascript
node.js中的dns.getServers方法使用说明
2014/12/08 Javascript
js中取得变量绝对值的方法
2015/01/03 Javascript
JavaScript给url网址进行encode编码的方法
2015/03/18 Javascript
常用原生JS兼容性写法汇总
2016/04/27 Javascript
JS留言功能的简单实现案例(推荐)
2016/06/23 Javascript
jQuery事件用法详解
2016/10/06 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
2017/02/10 Javascript
基于react框架使用的一些细节要点的思考
2017/05/31 Javascript
js+html5实现半透明遮罩层弹框效果
2020/08/24 Javascript
JavaScript求一组数的最小公倍数和最大公约数常用算法详解【面向对象,回归迭代和循环】
2018/05/07 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
说说node中的可读流和可写流的区别
2018/06/01 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
JS常用排序方法实例代码解析
2020/03/03 Javascript
使用js和canvas实现时钟效果
2020/09/08 Javascript
vue实现图片裁剪后上传
2020/12/16 Vue.js
详解ES6实现类的私有变量的几种写法
2021/02/10 Javascript
详解Python中的strftime()方法的使用
2015/05/22 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
2019/05/31 Python
python集合的创建、添加及删除操作示例
2019/10/08 Python
TensorFLow 数学运算的示例代码
2020/04/21 Python
兰芝美国网上商城:购买LANEIGE睡眠面膜等
2017/06/30 全球购物
领先的英国注册在线药房 :Simply Meds Online
2019/03/28 全球购物
StubHub澳大利亚:购买或出售您的门票
2019/08/01 全球购物
儿科护士实习自我鉴定
2013/10/17 职场文书
护士专业推荐信
2013/11/02 职场文书
HR必备:超全面的薪酬待遇管理方案!
2019/07/12 职场文书
Python爬虫实战之爬取携程评论
2021/06/02 Python
Java字符串逆序方法详情
2022/03/21 Java/Android
JS中forEach()、map()、every()、some()和filter()的用法
2022/05/11 Javascript