5 分鐘學會使用Pandas 處理excel, 高效、優雅地完成工作!

2021-12-25 喜悅家學Python



Pandas 處理excel 數據的流程,非常簡單直觀:

讀取數據,存入內存(以dataframe形式,含行和列的二維數據結構),使用pandas內置方法處理數據,最後把結果導出至excel。

第一步,使用pandas 的read_excel 方法讀取excel文件,natural language,多麼直接!

import pandas as pddf = pd.read_excel('超市運營數據.xlsx')#查看數據前5行df.head()

第二步,使用df.info()方法查看數據概況,了解總行數、各列名、數值類型,佔用內存等信息。

從結果中看到,總數據量3478,沒有空值,數據類型有:數值(int 和float)和時間(datime64)以及字符串(object),內存為200+KB,接下來我們對數據用pandas來進行處理,開整!

1. 首先看下數據篩選和對比:(注意運行時間,毫秒級)

df[(df.日期 > '2020-04-30 00:00:00') & (df.日期 < '2020-06-01 00:00:00')]

2: 然後看下如何批量拆分和合併:(同樣,注意運行時間,個位數秒)


i. 將所有數據按照年份拆分到同一個工作簿的不同的工作表sheet裡:
df['Year'] = df['日期'].dt.year.astype('str')years = list(df['Year'].unique())writer = pd.ExcelWriter('data_by_year.xlsx')for year in years:    df[df['Year']== year].to_excel(writer,sheet_name = year,index = False)writer.save()


ii. 將所有數據按照年份拆分到互相獨立的工作簿裡:
import osif not os.path.exists('年份/'):    os.makedirs('年份/')for year in years:    file_name = '年份/'+ year + '.xlsx'    df[df['Year']== year].to_excel(file_name,index = False)

iii. 將多張工作簿數據合併到一張工作簿裡(第2 步的反向操作):
#這一步是遍歷文件夾裡所有excel,把數據匯總至一張表裡#首先創建空列表,用於存放所有數據lis_a = []
#遍歷所有excel文件,提取每個表裡的數據,追加到列表裡for foldName,subfolders,filenames in os.walk('年份'): for filename in filenames: #將文件夾名字和文件名合併,方便pandas 按照路徑讀取數據 file_name = os.path.join(foldName,filename) df_sub = pd.read_excel(file_name) lis_a.append(df_sub) #然後使用concat合併,最後導出df_all = pd.concat(lis_a)df_all.to_excel('data_all.xlsx',index = False)


使用pandas 處理excel數據,優勢在於:


1. 高效處理大數據量,速度在秒級,遠遠快於手動操作

2. 可以利用循環,批量、快速實現分析和導出結果

3. pands的好,誰用誰知道!




相關焦點

  • 如何使用 Pandas 讀寫Excel
    其中的數據框格式將非常有利於我們對Excel表格的處理,相關介紹可以點擊上一篇內容。今天的推送主要內容圍繞讀取表格及一些參數使用,同時也徵集一下大家的使用經驗,歡迎留言。如果還咩有安裝python,那麼強烈推薦你使用 pycharm,你可以在這幾篇推文中找到相關的安裝及基礎使用方式: 三劍客 PyCharm使用   好用的PYTHON IDE和代碼編輯器簡單讀入import pandas as pddata = pd.read_excel('expression_text.xlsx')data.head()
  • 自從學會了Pandas,我用Python處理Excel更高效了
    功能極其強大的數據分析庫可以高效地操作各種數據集csv格式的文件Excel文件HTML文件XML格式的文件JSON格式的文件資料庫操作2.經典面試題通過面試題引出主題,讀者可以思考,如果你遇到這題,該如何解答呢
  • 史上最全Pandas 教程!
    pandas 最有趣的地方在於裡面隱藏了很多包。它是一個核心包,裡面有很多其他包的功能。這點很棒,因為你只需要使用 pandas 就可以完成工作。pandas 相當於 python 中 excel:它使用表(也就是 dataframe),能在數據上做各種變換,但還有其他很多功能。如果你早已熟知 python 的使用,可以直接跳到第三段。
  • 這是 Pandas 最詳細教程了
    pandas 最有趣的地方在於裡面隱藏了很多包。它是一個核心包,裡面有很多其他包的功能。這點很棒,因為你只需要使用 pandas 就可以完成工作。pandas 相當於 python 中 excel:它使用表(也就是 dataframe),能在數據上做各種變換,但還有其他很多功能。
  • 別找了,這是 Pandas 最詳細教程了
    pandas 最有趣的地方在於裡面隱藏了很多包。它是一個核心包,裡面有很多其他包的功能。這點很棒,因為你只需要使用 pandas 就可以完成工作。pandas 相當於 python 中 excel:它使用表(也就是 dataframe),能在數據上做各種變換,但還有其他很多功能。如果你早已熟知 python 的使用,可以直接跳到第三段。
  • 適合新手的 python pandas 學習筆記(2)
    回顧一下昨天的學習筆記在適合新手的 python pandas 學習筆記(1)中,準備工作已經完成。
  • 數據分析必備利器——《Pandas 使用教程》
    Pandas 是非常著名的開源數據處理庫,我們可以通過它完成對數據集進行快速讀取、轉換、過濾、分析等一系列操作。除此之外,Pandas 擁有強大的缺失數據處理與數據透視功能,可謂是數據預處理中的必備利器。這是 Pandas 使用教程的第 1 章節,將學會安裝它,並了解 Pandas 的數據結構。
  • 5分鐘掌握Pandas GroupBy
    import pandas as pd import numpy as np from sklearn.datasets import fetch_openml  X,y = fetch_openml(name='credit-g', as_frame
  • Python自動化測試—使用Pandas來高效處理測試數據
    git clone git://github.com/pydata/pandas.gitcd pandaspython setup.py install  案例中的lemon_cases.xlsx文件內容如下所示:import pandas as pd# 讀excel文件# 返回一個DataFrame對象,多維數據結構
  • Python 數據處理(十九)—— Excel
    Python 數據處理(十九)Excel 文件read_excel() 方法可以使用 openpyxl 模塊讀取 Excel 2007+(.xlsx)文件可以使用 xlrd 讀取 Excel 2003(.xls)文件。
  • 想成為高效數據科學家?不會Pandas怎麼行
    pandas 最有趣的地方在於裡面隱藏了很多包。它是一個核心包,裡面有很多其他包的功能。這點很棒,因為你只需要使用 pandas 就可以完成工作。pandas 相當於 python 中 excel:它使用表(也就是 dataframe),能在數據上做各種變換,但還有其他很多功能。
  • Python 數據處理庫 pandas 入門教程
    關於如何獲取pandas請參閱官網上的說明:pandas Installation。這也是pandas庫取名的原因:pan(el)-da(ta)-s。但這種數據結構由於很少被使用到,因此已經被廢棄了。然後通過pandas.isna函數來確認哪些值是無效的:# process_na.py import pandas as pdimport numpy as np df = pd.DataFrame([[1.0, np.nan, 3.0, 4.0],                  [5.0, np.nan
  • 使用Pandas讀取複雜的Excel數據
    關於Excel數據處理,很多同學可能使用過Pyhton的pandas模塊,用它可以輕鬆地讀取和轉換Excel數據。但是實際中Excel表格結構可能比較雜亂,數據會分散不同的工作表中,而且在表格中分布很亂,這種情況下啊直接使用pandas就會非常吃力。本文蟲蟲給大家介紹使用pandas和openpyxl讀取這樣的數據的方法。
  • 乾貨 | 用 pandas 讀取 csv 和 Excel 數據
    接下來我們將使用 Python 中的 pandas 數據分析包來進行數據的讀取和查看。import pandas as pdnasdaq = pd.read_csv('nasdaq-listings.csv')print(nasdaq.head(10)) Stock Symbol Company Name Last Sale
  • Pandas 數據分析: 3 種方法實現一個實用小功能
    Pandas 的強大體現在其簡潔,解決一些數據分析問題非常方便。
  • 使用Pandas讀寫操作excel
    (1):準備好Python或者Anaconda的pandas庫,安裝:pip install pandas(2):pandas依賴處理Excel的xlrd模塊,安裝命令:pip install xlrd(3):打開代碼編輯器jupyter、ipython、pycharm,根據自己習慣和需求選用。
  • Pandas 數據處理|Datetime 時間模塊在 Pandas 中的使用
    Datatime 作為 Python 中的時間模塊類型,處理時間有關數據是非常方便的, Pandas 作為數據分析程序包同樣也支持 DataTime 數據機制,例如1,函數 to_datetime() 將數據列表中的 Series 列轉化為 datetime 類型,#Convert the type to datetimeapple.Date =
  • Pandas 必知必會的使用技巧,值得收藏!
    本期的主題是關於python的一個數據分析工具pandas的,歸納整理了一些工作中常用到的pandas使用技巧,方便更高效地實現數據分析。 df = pd.DataFrame({'Sp':['a','b','c','d','e','f'], 'Mt':['s1', 's1', 's2','s2','s2','s3'], 'Value':[1,2,3,4,5,6], 'Count':[3,2,5,10,10,6]}) df df.iloc
  • 5個案例對比:Python Pandas 和R data.table
    它們都提供了豐富的功能選擇並且能夠加速和改進數據科學工作流程。在這篇文章中,我們將比較Pandas 和data.table,這兩個庫是Python和R最長用的數據分析包。我們不會說那個一個更好,我們這裡的重點是演示這兩個庫如何為數據處理提供高效和靈活的方法。
  • Pandas 數據處理 | Datetime 時間模塊在 Pandas 中的使用
    Datatime 作為 Python 中的時間模塊類型,處理時間有關數據是非常方便的, Pandas 作為數據分析程序包同樣也支持 DataTime 數據機制,例如1,函數 to_datetime() 將數據列表中的 Series 列轉化為 datetime 類型,#Convert the type to datetimeapple.Date