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
- 陣列多重篩選條件排序方法陣列排序
- excel篩選條件怎麼設定 excel怎麼篩選出自己想要的資料Excel
- JS中的陣列過濾,從簡單篩選到多條件篩選JS陣列
- excel高階篩選怎麼做 表格的高階篩選怎麼設定條件Excel
- excel批量篩選重複人名 excel怎麼篩選相同的名字Excel
- excel批次篩選重複人名 excel怎麼篩選相同的名字Excel
- excel怎麼快速篩選?Excel
- 常用的php列表多條件篩選功能PHP
- excel如何篩選出自己想要的部分 excel表格如何篩選特定內容Excel
- excel怎麼篩選?教你一個簡單粗暴的篩選技巧Excel
- 教你excel篩選手機號碼公式和excel篩選正常電話號碼Excel公式
- js根據input標籤的type屬性篩選元素JS
- 根據JSON自動構建的vue篩選框元件JSONVue元件
- 根據name屬性值篩選checkbox核取方塊
- Excel如何篩選出自己想要的資料 excel怎麼篩選出需要的內容Excel
- Finereport11 類Excel篩選Excel
- 海量資料“一鍵篩選”,比Excel還好用的篩選功能,更便捷了!Excel
- jQuery如何篩選具有指定文字的元素jQuery
- 增加子查詢表條件篩選提高效能
- Android開商品屬性篩選與商品篩選Android
- CoffeeScript攻略4.9:篩選陣列陣列
- 3個條件,篩選出最趁手的財務分析工具
- PHP+MYSQL 條件篩選後分頁顯示資料PHPMySql
- excel篩選後複製貼上怎樣跳過隱藏行 如何只貼上到篩選出的部分Excel
- jQuery 篩選方法jQuery
- Storm框架:如何根據業務條件選擇不同的bolt進行下發訊息ORM框架
- [Python] Pandas 對資料進行查詢、替換、篩選、排序、重複值和缺失值處理Python排序
- JQuery選擇器——可見性篩選選擇器和屬性篩選選擇器jQuery
- 篩選出陣列中屬性為true的每條資料陣列
- 教你excel表篩選手機號不是11位,wps怎麼篩選不正確的手機號Excel
- 啟用Exchange Server 智慧郵件篩選器更新Server
- Chrome 除錯工具 Network 篩選指定 Ajax 請求Chrome除錯
- jQuery 篩選&文件處理jQuery
- dataframe 萬用字元篩選字元
- w10篩選器在哪_win10怎麼開啟篩選器Win10
- excel重複項篩選標色 excel表格重複項變色Excel