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) # 对索引这一列重命名
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]