成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

手把手教你使用Openpyxl庫從Excel文件中提取指定的數據并生成新的文件

開發 后端
本文基于粉絲提問如何從Excel文件中提取指定的數據并生成新的文件的問題,給出了兩種解決方案。針對這個問題,小編這里整理了兩個思路.

[[431090]]

大家好,我是Python進階者。

前言

前幾天有個叫【Lcc】的粉絲在Python交流群里問了一道關于從Excel文件中提取指定的數據并生成新的文件的問題,初步一看確實有點難,不過還是有思路的。她的目標就是想提取文件中A列單元格中數據為10的所有行,看到A列的表頭是時間,10就代表著上午的10小時,也就是說她需要提取每一天中的上午10點鐘的數據。這個數據在做研究的時候還是挺有用的,之后結合作圖,就可以挖掘出部分潛在規律了,這個在此不做深究。

一、思路

這個問題看似簡單,直接用Excel中的篩選就可以了。誠然,數據篩選,之后擴展行確實可以做到,針對一個或者兩個或者10位數以下的Excel文件,我們尚且可以游刃有余,但是面對成百上千個這樣的數據文件,怕就力不從心了,如果還是挨個進行處理,那就難受了,所以用Python來批量處理還是很奈斯的。下面一起來看看吧!

二、解決方法

其實這個問題和轉載劉早起之前的那篇文章處理思路一模一樣,Python辦公自動化|批量提取Excel數據,感興趣的話,可以戳鏈接看看,只不過稍微有些改變,把那個判斷條件改為等于就可以了,下面直接上代碼。關于代碼的詳細解析,可以參考上面提到的文章,這里不做贅述。

  1. # coding: utf-8 
  2. from openpyxl import load_workbook, Workbook 
  3.  
  4. # 數據所在的文件夾目錄 
  5. path = 'C:/Users/pdcfi/Desktop/xiaoluo' 
  6.  
  7. # 打開數據工作簿 
  8. workbook = load_workbook(path + '/' + '巍圖1.xlsx'
  9. # 打開工作表 
  10. sheet = workbook.active 
  11. buy_mount = sheet['A'
  12. row_lst = [] 
  13. for cell in buy_mount: 
  14.     if isinstance(cell.value, intand cell.value == 10: 
  15.         print(cell.row) 
  16.         row_lst.append(cell.row) 
  17.  
  18. new_workbook = Workbook() 
  19. new_sheet = new_workbook.active 
  20.  
  21. # 創建和原數據 一樣的表頭(第一行) 
  22. header = sheet[1] 
  23. header_lst = [] 
  24. for cell in header: 
  25.     header_lst.append(cell.value) 
  26. new_sheet.append(header_lst) 
  27.  
  28. # 從舊表中根據行號提取符合條件的行,并遍歷單元格獲取值,以列表形式寫入新表 
  29. for row in row_lst: 
  30.     data_lst = [] 
  31.     for cell in sheet[row]: 
  32.         data_lst.append(cell.value) 
  33.     new_sheet.append(data_lst) 
  34.  
  35. # 最后切記保存 
  36. new_workbook.save(path + '/' + 'xiaoluo_符合篩選條件的新表.xlsx'

之后在本地查看結果,可以看到,符合條件的數據全部都被提取出來了。

2)注意

還記得上圖中粉絲說自己提取到的數據為啥只有header,而沒有數據么?其實這里有個坑,隱藏在她的原始數據中,請看下圖。

A列的數據是從B列取的,是引用,所有等到訪問的時候,其實是獲取不到的,所有導致我們去讀取的時候,查找的cell為空,自然我們就無法提取到數據。

針對這樣的情況,這里給出兩個方案,其一是將A列,復制粘貼,粘貼類型為"值",然后重新保存excel進行讀取就可以搞定了;其二是以B列作為索引,進行時間取值,然后創建新的一列,之后再做提取,實現難度稍微大一些,取時間的代碼可以參考。

  1. df_raw['時間'] = pd.to_datetime(df_raw['時間'], format='%Y-%m-%d').hour 

本文用的是第一種方法,其實第二種方法顯得更加智能一些,難度稍微大一些,實現方法大家可以踴躍的嘗試下。

三、總結

我是Python進階者。本文基于粉絲提問如何從Excel文件中提取指定的數據并生成新的文件的問題,給出了兩種解決方案。

針對這個問題,小編這里整理了兩個思路,當然方法肯定遠遠不只是這兩種!

 

責任編輯:姜華 來源: Python爬蟲與數據挖掘
相關推薦

2021-07-14 09:00:00

JavaFX開發應用

2009-11-09 14:57:37

WCF上傳文件

2025-05-07 00:31:30

2009-07-03 17:15:31

jsp上傳文件

2022-12-07 08:42:35

2020-11-27 07:38:43

MongoDB

2021-02-23 09:03:13

Python拆分ExcelCSV文件

2020-07-08 07:54:03

PythonPDF數據

2021-08-09 13:31:25

PythonExcel代碼

2011-06-28 12:58:44

表分區

2021-08-02 07:35:19

Nacos配置中心namespace

2017-09-05 13:01:11

CocoaPods開源庫GitHub

2021-09-26 16:08:23

CC++clang_forma

2021-03-29 23:03:04

數據集數據庫科學

2011-01-10 14:41:26

2011-05-03 15:59:00

黑盒打印機

2022-02-15 09:03:07

Pythonmofish庫代碼

2021-09-30 18:27:38

數據倉庫ETL

2009-10-27 16:05:52

VB.NET File

2025-04-09 08:21:10

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一级特黄真人毛片 | 日韩成人免费在线视频 | 97影院在线午夜 | 亚洲欧美激情国产综合久久久 | 亚洲一二三在线观看 | 亚洲一区二区三区四区五区午夜 | 美女国产精品 | 欧美一级淫片免费视频黄 | 亚洲在线久久 | 亚洲中字在线 | 一级黄色影片在线观看 | 日韩激情免费 | 日本一二三区高清 | 成人性视频免费网站 | 99久久国产综合精品麻豆 | 精品国产一区二区三区久久狼黑人 | 欧美成年人 | 97成人免费 | 人操人免费视频 | 精品无码久久久久久久动漫 | 蜜桃视频在线观看www社区 | 日韩精品一区二区久久 | 国产视频福利 | a毛片| 成人午夜激情 | 日韩精品一区二区三区中文在线 | 新91 | 一区二区三区中文字幕 | 日韩在线视频免费观看 | 亚洲五码在线 | 成人精品一区二区三区 | 日韩一区二区在线视频 | 亚洲小视频在线播放 | av在线视 | 欧美成人二区 | 亚洲综合在线一区 | 91资源在线 | 小川阿佐美pgd-606在线 | 亚洲精品小视频在线观看 | 一区二区三区欧美 | 四虎成人精品永久免费av九九 |