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

yipeiwu_com5年前Python基础

假如有一个需求场景需要遍历一个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实现计算圆周率π的值到任意位的方法示例

Python实现计算圆周率π的值到任意位的方法示例

本文实例讲述了Python实现计算圆周率π的值到任意位的方法。分享给大家供大家参考,具体如下: 一、需求分析 输入想要计算到小数点后的位数,计算圆周率π的值。 二、算法:马青公式 π/...

Python如何使用k-means方法将列表中相似的句子归类

Python如何使用k-means方法将列表中相似的句子归类

前言 由于今年暑假在学习一些自然语言处理的东西,发现网上对k-means的讲解不是很清楚,网上大多数代码只是将聚类结果以图片的形式呈现,而不是将聚类的结果表示出来,于是我将老师给的代码和...

python使用插值法画出平滑曲线

本文实例为大家分享了python使用插值法画出平滑曲线的具体代码,供大家参考,具体内容如下 实现所需的库 numpy、scipy、matplotlib 实现所需的方法 插值 nea...

使用python实现省市三级菜单效果

使用python实现省市三级菜单效果

地区分三层结构例如: 大中华地区一级划分: 华东 华中 华北 西南 特别行政区 华南 -------------------------------------------------...

Django 登陆验证码和中间件的实现

Django 登陆验证码和中间件的实现

验证码 在用户注册、登陆页面为了防止暴力请求,可以加入验证码。如果验证码错误,则不需要继续处理,可以减轻服务器的压力 使用验证码也是一种有效防止 csrf 的方法 def veri...