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中类的继承代码实例
Oct 28 Python
Python 实现链表实例代码
Apr 07 Python
python的变量与赋值详细分析
Nov 08 Python
python批量导入数据进Elasticsearch的实例
May 30 Python
python制作抖音代码舞
Apr 07 Python
详解Python3序列赋值、序列解包
May 14 Python
浅析python 中大括号中括号小括号的区分
Jul 29 Python
python 使用while写猜年龄小游戏过程解析
Oct 07 Python
python3常用的数据清洗方法(小结)
Oct 31 Python
pygame实现飞机大战
Mar 11 Python
Python爬取数据并实现可视化代码解析
Aug 12 Python
Python深度学习之实现卷积神经网络
Jun 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
两个php日期控制类实例
2014/12/09 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
ThinkPHP 3.2.2实现事务操作的方法
2017/05/05 PHP
Swoole 5将移除自动添加Event::wait()特性详解
2019/07/10 PHP
laravel 实现设置时区的简单方法
2019/10/10 PHP
JavaScript实现url地址自动检测并添加URL链接示例代码
2013/11/12 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
AngularJS实现Input格式化的方法
2016/11/07 Javascript
jstree单选功能的实现方法
2017/06/07 Javascript
JS图片预加载插件详解
2017/06/21 Javascript
浅谈JS如何实现真正的对象常量
2017/06/25 Javascript
基于 D3.js 绘制动态进度条的实例详解
2018/02/26 Javascript
vue父组件向子组件传递多个数据的实例
2018/03/01 Javascript
ES6 Promise对象的应用实例分析
2019/06/27 Javascript
js实现列表向上无限滚动
2020/01/13 Javascript
深入了解JS之作用域和闭包
2020/06/16 Javascript
[03:23:49]2016.12.17日完美“圣”典全回顾
2016/12/19 DOTA
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
Django实现组合搜索的方法示例
2018/01/23 Python
Python Paramiko模块的使用实际案例
2018/02/01 Python
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
Python实现的多进程拷贝文件并显示百分比功能示例
2019/04/09 Python
详解Django admin高级用法
2019/11/06 Python
英国最大的海报商店:GB Posters
2018/03/20 全球购物
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
期中考试后的反思
2014/02/08 职场文书
英语专业职业生涯规划范文
2014/03/05 职场文书
学校招生宣传广告词
2014/03/19 职场文书
公开服务承诺制度
2014/03/26 职场文书
国旗下演讲稿
2014/05/08 职场文书
四风个人对照检查材料思想汇报(办公室通用版)
2014/10/07 职场文书
党的群众路线教育实践活动心得体会(企业)
2014/11/03 职场文书
三峡导游词
2015/01/31 职场文书
Python采集壁纸并实现炫轮播
2022/04/30 Python