Pandas根據篩選條件對指定excel列進行篩選!神器!
這兩天老師要求篩選一下最近幾年學院發表的文章,從圖書館那要了份資料量較大的excel,將該excel分成學生文章、老師文章兩份excel,以第一作者為區分,B站學習法稍微補了補python操作excel,看到pandas就順手用一下了……大佬勿噴,僅僅是稍微學了一下。
匯入需要篩選的excel和篩選條件
import pandas as pd df = pd.read_excel('D:/py_project/datafenxi/scut.xls',sheet_name='savedrecs') ji_he = {'name1','name2','name3',任意多個name}
這裡的ji_he是提供的學院所有老師的姓名,與下面的要篩選的表格A做匹配,標記出A中一作為老師的論文。那剩下的未標記就是學生。
要篩選的表格A
excel內容大概長這樣(對不起!杰倫力巨集紫棋):
這裡一作就是杰倫,力巨集,和紫棋。
思路
1、由於我們只要第一作者,所以對要篩選的表格A的Author Full Names列進行遍歷,按;分割成陣列取第0個元素,因為拿到的表格一作的格式千奇百怪,還有-等等莫名字元,所以稍微改了下。
2、拿到的每行A表格的一作名字,與指定老師名單做匹配,True則記錄下該索引ID,並給值teacher建立sheet1
3、使用merg()將要篩選的表格A與sheet1做匹配整合成一張表。
while i < len(df): a = df.loc[i, 'Author Full Names'] # 取出Author Full Names列的第i行 a1 = str(a).split(';')[0].replace('-', '') # 篩選第i行AFN列的內容,按;分割成陣列取第0個元素,刪除-字元返回a1 # print('q', a1) if a1 in ji_he: print('qq', i) # 獲取匹配的索引 df3.loc[i] = ['teacher'] # 給匹配出來的一作老師標上teacher df3.to_excel("D:/py_project/datafenxi/outputscut.xls") # 輸出為新的列表 i += 1
這裡我們可以拿到一個根據A匹配出來的一作是老師身份的索引表sheet1,like this:
然後用merge()根據ID將兩份表拼成一份完整表,就基本完成需求了(分成兩份表我直接選擇excel做透視了,又懶又菜說的就是我)
import pandas as pd sheet1 = pd.read_excel('D:/py_project/datafenxi/scut.xls', sheet_name='savedrecs', index_col='ID') sheet2 = pd.read_excel('D:/py_project/datafenxi/scut.xls', sheet_name='Sheet1', index_col='ID') table = sheet1.merge(sheet2, how='left', on='ID') table.to_excel("D:/py_project/datafenxi/outputfinal.xls") print(table)
結果
這部分語法可以參考B站視訊 Link,記得把兩個sheet放在一個excel裡面(其實我看到了其他大佬直接將多個sheet輸出在一個excel,但我沒時間改了,之後看看。)
以下是最終結果,表格最右邊區分身份:teacher,空為student。
PS:如有需要Python學習資料的小夥伴可以加點選下方連結自行獲取
相關文章
- JavaScript 根據type篩選inputJavaScript
- Extjs Grid 清除列頭篩選條件JS
- excel篩選條件怎麼設定 excel怎麼篩選出自己想要的資料Excel
- JS中的陣列過濾,從簡單篩選到多條件篩選JS陣列
- excel高階篩選怎麼做 表格的高階篩選怎麼設定條件Excel
- 易優CMS模板標籤screening文件篩選指定自定義欄位讀取篩選條件
- PbootCMS對內容列表進行篩選boot
- excel批量篩選重複人名 excel怎麼篩選相同的名字Excel
- excel批次篩選重複人名 excel怎麼篩選相同的名字Excel
- 常用的php列表多條件篩選功能PHP
- excel怎麼快速篩選?Excel
- excel如何篩選出自己想要的部分 excel表格如何篩選特定內容Excel
- excel怎麼篩選?教你一個簡單粗暴的篩選技巧Excel
- 教你excel篩選手機號碼公式和excel篩選正常電話號碼Excel公式
- 根據JSON自動構建的vue篩選框元件JSONVue元件
- Finereport11 類Excel篩選Excel
- Excel如何篩選出自己想要的資料 excel怎麼篩選出需要的內容Excel
- 如何在Spark鍵值對資料中,對指定的Key進行輸出/篩選/模式匹配Spark模式
- Fastadmin在原有篩選條件filter基礎之上,js重新附加新條件ASTFilterJS
- 海量資料“一鍵篩選”,比Excel還好用的篩選功能,更便捷了!Excel
- 增加子查詢表條件篩選提高效能
- IDEA如何給debug斷點加上篩選條件判斷Idea斷點
- Android開商品屬性篩選與商品篩選Android
- 3個條件,篩選出最趁手的財務分析工具
- excel篩選後複製貼上怎樣跳過隱藏行 如何只貼上到篩選出的部分Excel
- [Python] Pandas 對資料進行查詢、替換、篩選、排序、重複值和缺失值處理Python排序
- 動態篩選
- jQuery 篩選方法jQuery
- 外包篩選心得
- 關於如何根據shp檔案篩選csv某個省份資料集
- TreeSelect 篩選後的全選是否支援僅全選篩選出來的列表
- Chrome 除錯工具 Network 篩選指定 Ajax 請求Chrome除錯
- Storm框架:如何根據業務條件選擇不同的bolt進行下發訊息ORM框架
- 教你excel表篩選手機號不是11位,wps怎麼篩選不正確的手機號Excel
- ztree 篩選選中節點
- 篩選出陣列中屬性為true的每條資料陣列
- wpf ObservableCollection篩選功能
- Netcode for Entities裡如何對Ghost進行可見性篩選(1.2.3版本)