Pandas DataFrame中的tuple元素遍历的实现
作者:小晓酱 时间:2023-12-21 09:47:00
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) # 对索引这一列重命名
来源:https://blog.csdn.net/sinat_26811377/article/details/102679353
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
javascript中caller和callee详解
python Opencv实现停车位识别思路详解
![](https://img.aspxhome.com/file/2023/5/86225_0s.jpg)
python实现傅里叶级数展开的实现
![](https://img.aspxhome.com/file/2023/1/117971_0s.png)
js添加千分位的实现代码(超简单)
一个奇怪的CSS现象
![](https://img.aspxhome.com/file/UploadPic/20102/10/y200921122655-79s.jpg)
python字符串定义的三种方式
总结一些js自定义的函数
Python反射和内置方法重写操作详解
Python制作当年第一款手机游戏-贪吃蛇游戏(练习)
![](https://img.aspxhome.com/file/2023/0/79540_0s.gif)
一文教你如何使用Python绘制瀑布图
![](https://img.aspxhome.com/file/2023/8/112978_0s.png)
Python+tkinter编写一个最近很火的强制表白神器
![](https://img.aspxhome.com/file/2023/5/121405_0s.png)
JavaScript语法约定和程序调试原理解析
![](https://img.aspxhome.com/file/2023/6/136276_0s.png)
golang 设置web请求状态码操作
关于Python字符编码与二进制不得不说的一些事
Webpack中的文件指纹的实现
![](https://img.aspxhome.com/file/2023/0/136840_0s.jpg)
NumPy中的维度Axis详解
![](https://img.aspxhome.com/file/2023/7/82737_0s.jpg)
numpy之sum()的使用及说明
![](https://img.aspxhome.com/file/2023/0/79620_0s.png)
MySQL自定义序列数的实现方式
切换路径在Jupyter里调用本地文件的操作
![](https://img.aspxhome.com/file/2023/0/66350_0s.jpg)
超酷的js图片轮播渐变效果
![](https://img.aspxhome.com/file/UploadPic/200710/10/2007101021445381s.jpg)