Pandas DataFrame中的tuple元素遍歷的實現

 更新時間:2019年10月23日 11:47:14   作者:小曉醬   我要評論
這篇文章主要介紹了Pandas DataFrame中的tuple元素遍歷的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

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模塊之time模塊(實例講解)

    python模塊之time模塊(實例講解)

    下面小編就為大家帶來一篇python模塊之time模塊(實例講解)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • python通過ftplib登錄到ftp服務器的方法

    python通過ftplib登錄到ftp服務器的方法

    這篇文章主要介紹了python通過ftplib登錄到ftp服務器的方法,涉及Python使用ftplib模塊的相關技巧,需要的朋友可以參考下
    2015-05-05
  • 利用QT寫一個極簡單的圖形化Python鬧鐘程序

    利用QT寫一個極簡單的圖形化Python鬧鐘程序

    這篇文章主要介紹了利用QT寫一個極簡單的圖形化Python鬧鐘程序,核心代碼只有25行,顯示屏幕提示而沒有鬧鈴聲音,需要的朋友可以參考下
    2015-04-04
  • Python天氣預報采集器實現代碼(網頁爬蟲)

    Python天氣預報采集器實現代碼(網頁爬蟲)

    這個天氣預報采集是從中國天氣網提取廣東省內主要城市的天氣并回顯。本來是打算采集騰訊天氣的,但是貌似它的數據是用js寫上去還是什么的,得到的html文本中不包含數據,所以就算了
    2012-10-10
  • python將ansible配置轉為json格式實例代碼

    python將ansible配置轉為json格式實例代碼

    這篇文章主要介紹了python將ansible配置轉為json格式實例代碼的相關資料,需要的朋友可以參考下
    2017-05-05
  • 實例詳解Matlab 與 Python 的區別

    實例詳解Matlab 與 Python 的區別

    Python是一種面向對象的解釋型計算機程序設計語言。這篇文章主要介紹了Matlab 與 Python 的區別及優勢,感興趣的朋友跟隨小編一起看看吧
    2019-04-04
  • python實現爬山算法的思路詳解

    python實現爬山算法的思路詳解

    爬山算法會收斂到局部最優,解決辦法是初始值在定義域上隨機取亂數100次,總不可能100次都那么倒霉。這篇文章主要介紹了python實現爬山算法的思路詳解,需要的朋友可以參考下
    2019-04-04
  • python爬蟲解決驗證碼的思路及示例

    python爬蟲解決驗證碼的思路及示例

    這篇文章主要介紹了python爬蟲解決驗證碼的思路及示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • 全面了解Nginx, WSGI, Flask之間的關系

    全面了解Nginx, WSGI, Flask之間的關系

    下面小編就為大家分享一篇全面了解Nginx, WSGI, Flask之間的關系,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • 基于python實現聊天室程序

    基于python實現聊天室程序

    這篇文章主要為大家詳細介紹了基于python實現聊天室程序,該程序由客戶端與服務器構成,使用UDP服務,實現了群發、私發、點對點文件互傳功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07

最新評論

2019开奖结果