用Python玩轉Excel的五大功能!

在日常的數據處理工作中,Excel無疑是一個強大的工具。然而,當數據量較大或需要自動化處理時,Python憑借其強大的庫支持,如pandas和openpyxl,能夠更高效地處理Excel文件。

本文將介紹Python中常用的五種Excel操作**,**并額外添加兩個實用功能,幫助你提升數據處理和文件美化能力。

一、讀寫Excel數據

為了演示方便,我們先生成一張Excel表:

import pandas as pd  \# 創建一個DataFrame  
data = {  'Name': \['John', 'Anna', 'Peter', 'Linda'\],  'Age': \[28, 34, 29, 32\]  
}  
df = pd.DataFrame(data)  \# 寫入Excel文件  
df.to\_excel('output.xlsx', index=False)  \# 讀取Excel文件  
df = pd.read\_excel('output.xlsx', sheet\_name='Sheet1')  
print(df)

我們生產了一個dataframe數據表,利用to_excel函數將這個表保存到本地路徑,保存為’output.xlsx’。

然后再用read_excel函數將這個Excel表讀取進來,數據如下:

現在,這些數據已經被保存到output.xlsx這個Excel表格中,接下來我們對這份數據進行后續操作。

二、修改Excel文件

現在我們將第一個人“John”的年齡改為30歲:

\# 讀取Excel文件   
df = pd.read\_excel('output.xlsx')  \# 修改數據   
df.loc\[0, 'Age'\] = 30  \# 將第一行的Age改為30   \# 寫入Excel文件   
df.to\_excel('modified.xlsx', index=False)

我們先把剛才保存好的output.xlsx讀取進來,修改第一個人的年齡為30歲,然后再保存為modified.xlsx。

可以看到,當前路徑下有兩張Excel表格。

我們打開modified.xlsx看看:

可以看到John的年齡被修改為30歲了。

三、添加和刪除行列

接下來,我們在modified.xlsx表格的基礎上做一些添加和刪除的操作

●新增一個人的信息;

●添加一列“Pet”,給這幾位靚仔添加一些寵物;

●為了保護個人隱私,把City這一列刪除。

如下:

\# 讀取Excel文件   
df = pd.read\_excel('modified.xlsx')  \# 添加行  
df.loc\[4, :\] = \['Bob', 45, 'Osaka', 'Dancer'\]  
\# 添加列  
df\['Pet'\] = \['Cat', 'Lion', 'Dog', 'Tiger', 'Monkey'\]  
\# 刪除列  
df.drop('City', axis=1, inplace=True)  \# 寫入Excel文件  
df.to\_excel('modified2.xlsx', index=False)

我們首先利用df.loc定位到最后一行,新增Bob的相關信息,然后添加Pet這一列的信息,刪除Age這一列,最后保存為modified2.xlsx:

可以看到,Bob的信息被添加進去了,而且City也被刪除了,此外,每位靚仔都擁有了一個寵物!

四、篩選和排序數據

接下來,我們把表格中年齡大于30歲的人篩選出來,保存到另一張Excel表中:

\# 讀取Excel文件  
df = pd.read\_excel('modified2.xlsx')  \# 篩選Age大于30的數據  
filtered\_df = df\[df\['Age'\] > 30\]  
\# 按Age列排序   
sorted\_df = df.sort\_values(by='Age')  \# 寫入Excel文件  
df.to\_excel('modified3.xlsx', index=False)

首先依然是讀取Excel表格,然后利用dataframe的篩選語句,篩選出Age這一列大于30的人,再用sort_values函數進行排序。

注意,**sort_values函數默認為升序排列,**如果想改為降序排列,需要設定參數ascending=False。

現在新生成的modified3.xlsx表格如下:

五、實現Excel的VLOOKUP

最后我們來點復雜的操作,**實現Excel的王牌函數:**VLOOKUP!

VLOOKUP函數本質上是把兩種表格按照某列關鍵字進行橫向拼接,現在我們再生成一張新表:

沒錯,就是剛才我們刪除的City……這張新表命名為city.xlsx。

現在我們要以Name這一列作為關鍵字,把modified3.xlsx與city.xlsx這兩張表進行橫向拼接:

\# VLOOLUP函數  
df1 = pd.read\_excel('modified3.xlsx')  
df2 = pd.read\_excel('city.xlsx')  
df\_new = pd.merge(df1, df2, on='Name', how='left')  
df\_new.to\_excel('last.xlsx')  
print(df\_new)

這段代碼的關鍵點在于pd.merge函數。

該函數的主要參數如下:

●前兩個參數的參與拼接的表格,df1是左表,df2是右表;

●on參數用于指定關鍵字,一般只用一個關鍵字;

●how參數用于設定合并方式,可以設定為’left’, ‘right’, ‘inner’或’outer’。**這里我們設定為’left’,意思是以左表df1作為標準進行合并。**左表是讀取的modified3.xlsx, 這張表里只有年齡大于30歲的人。

最終生成的last.xlsx表格如下:

任務完成!

通過本文,你學習了如何使用Python進行常用的Excel操作。這些操作能夠幫助你更高效地處理大量數據,提升工作效率。

掌握這些技能后,你可以進一步探索python辦公自動化的其他功能,以應對更復雜的數據處理需求。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43135.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43135.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43135.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一個用于在虛擬桌面下跑chrome的docker鏡像

制作了一個用于跑chrome的docker鏡像xvfb-chrome,主要是為了支持能夠通過xvfb或者wayland,給chrome提供一個虛擬的桌面環境。 這個鏡像主要支持: 將chrome --remote-debugging-port映射到docker的host,可以在host直接訪問。支持…

Python辦公自動化:增值稅發票批量識別和核驗

騰訊云免費體驗地址: https://console.cloud.tencent.com/api/explorer?Product=ocr&Version=2018-11-19&Action=VatInvoiceVerifyNew 首先進行識別,這里以python為例子 # -*- coding: utf-8 -*- import jsonfrom tencentcloud.common.common_client import Commo…

【C++航海王:追尋羅杰的編程之路】關聯式容器的底層結構——紅黑樹

目錄 1 -> 紅黑樹 1.1 -> 紅黑樹的概念 1.2 -> 紅黑樹的性質 1.3 -> 紅黑樹節點的定義 1.4 -> 紅黑樹的結構 1.5 -> 紅黑樹的插入操作 1.6 -> 紅黑樹的驗證 1.8 -> 紅黑樹與AVL樹的比較 2 -> 紅黑樹模擬實現STL中的map與set 2.1 -> 紅…

如何理解李彥宏說的“不要卷模型,要卷應用?

背景: 7月4日,2024世界人工智能大會暨人工智能全球治理高級別會議全體會議在上海世博中心舉辦。在產業發展主論壇上,百度創始人、董事長兼首席執行官李彥宏呼吁:“大家不要卷模型,要卷應用!”李彥宏認為&am…

【堆 優先隊列】1354. 多次求和構造目標數組

本文涉及知識點 堆 優先隊列 LeetCode1354. 多次求和構造目標數組 給你一個整數數組 target 。一開始&#xff0c;你有一個數組 A &#xff0c;它的所有元素均為 1 &#xff0c;你可以執行以下操作&#xff1a; 令 x 為你數組里所有元素的和 選擇滿足 0 < i < target.…

idea在選定范圍搜索

idea在選定范圍搜索 CtrlR 在IntelliJ IDEA中&#xff0c;?如果你想在選定的范圍內搜索關鍵字&#xff0c;?可以按照以下步驟操作&#xff1a;? 首先&#xff0c;?使用鼠標選中你要搜索關鍵字的一個范圍。? 然后&#xff0c;?使用快捷鍵CtrlR&#xff08;?替換元素&am…

掌握JsonConvert.SerializeObject:美化輸出與序列化對象的藝術

目錄 引言 JsonConvert.SerializeObject簡介 參數詳解 使用示例 運行結果 結論 結語 引言 在現代軟件開發中&#xff0c;JSON&#xff08;JavaScript Object Notation&#xff09;是一種輕量級的數據交換格式&#xff0c;被廣泛用于Web API、數據庫存儲以及跨平臺數據傳…

linux信息收集與提權

目錄 版本信息收集 kali得一些exp網站 kali自帶的searchsploit工具 臟牛提權漏洞&#xff08;改寫沒有寫權限的文件&#xff09; 測試靶場下載鏈接 sudo提權 上傳惡意C腳本進行編譯生成dirty的elf文件&#xff0c;也可以在攻擊機編譯好上傳 啟動&#xff0c;123456是設…

體驗完這款售價29999元起蘋果新品,我大受震撼

講道理&#xff0c;數碼圈已經很久沒有出現過讓人耳目一新的產品了。 整個圈子近些年各家新品邏輯給我的一種感覺是普遍主打循規循距&#xff0c;用高情商話來說那叫穩扎穩打不易出錯&#xff0c;而低情商嘛&#xff0c;說白了叫創新精神嚴重缺失。 「科技最后以換皮為準」這…

C語言學習 關于short和int

&#x1f308; 關于今天的這一part 簡單說說關于C中的short 和 int 主要是復盤C語言時候的一個小小的回顧把~&#xff08;內容來自C Primer Plus 第六版&#xff09; &#x1f433;主要是討論一下兩個東西 1?? 在給函數傳遞參數時&#xff0c;C編譯器把short類型的值自動轉換…

【CUDA】 Trust基本特性介紹及性能分析

Trust簡介 Thrust 是一個實現了眾多基本并行算法的 C 模板庫,類似于 C 的標準模板庫(standard template library, STL)。該庫自動包含在 CUDA 工具箱中。這是一個模板庫,僅僅由一些頭文件組成。在使用該庫的某個功能時,包含需要的頭文件即可。該庫中的所有類型與函數都在命名空…

【linux】 sudo apt update報錯——‘由于沒有公鑰,無法驗證下列簽名: NO_PUBKEY 3B4FE6ACC0B21F32’

【linux】 sudo apt update報錯——‘由于沒有公鑰&#xff0c;無法驗證下列簽名&#xff1a; NO_PUBKEY 3B4FE6ACC0B21F32’ 在運行sudo apt update時遇到報錯&#xff0c;由于沒有公鑰&#xff0c;無法驗證下列簽名&#xff1a; NO_PUBKEY 3B4FE6ACC0B21F32 解決方法&#x…

C++八股(五)之Linux常用命令

目錄 一、Linux常用命令有哪些? 二、Linux中查看進程運行狀態的指令、tar解壓文件的參數。??? 三、如何創建一個新的目錄??? 四、說說如何以root權限運行某個程序。? 五、linux里如何查看一個想知道的進程?? 六、Linux里如何查看帶有關鍵字的日志文件?? 七、…

Qt:11.輸入類控件(QLineEdit-單行文本輸入控件、QTextEdit-多行文本輸入控件、QComboBox-下拉列表的控件)

一、QLineEdit-單行文本輸入控件&#xff1a; 1.1QLineEdit介紹&#xff1a; QLineEdit 是 Qt 庫中的一個單行文本輸入控件&#xff0c;不能換行。允許用戶輸入和編輯單行文本。 1.2屬性介紹&#xff1a; inputMask 設置輸入掩碼&#xff0c;以限定輸入格式。setInputMask(con…

react學習——25redux實現求和案例(完整版)

1、目錄結構 2、count/index.js import React, {Component} from "react"; //引入store,用于獲取數據 import store from ../../redux/store //引入actionCreator 專門創建action對象 import {createDecrementAction,createIncrementAction} from ../../redux/coun…

CSS【詳解】邊框 border,邊框-圓角 border-radius,邊框-填充 border-image,輪廓 outline

邊框 border border 是以下三種邊框樣式的簡寫&#xff1a; border-width 邊框寬度 —— 數值 px&#xff08;像素&#xff09;,thin&#xff08;細&#xff09;,medium&#xff08;中等&#xff09;,thick&#xff08;粗&#xff09;border-style 邊框線型 —— none【默認值…

78. UE5 RPG 創建技能數據并初始化技能ui

在上一篇文章里&#xff0c;我們創建了技能的UI&#xff0c;接下來&#xff0c;我們要考慮如何實現對技能UI的填充&#xff0c;肯定不能直接寫死&#xff0c;需要有一些方法去實現技能的更新。我們期望能夠創建一個技能數據&#xff0c;然后根據數據通過回調的方式實現數據的更…

GET正常,POST獲取不到數據

環境復現 前臺&#xff1a; wx.request({url: xxxxxx,method: POST,header: {"content-type": "application/json"},success(res) {console.log(res);},fail(err) {console.error(網絡請求失敗, err);}}); 后端使用springboot&#xff1a; RequestMappin…

一鍵掌握天氣動態 - 基于Vue和高德API的實時天氣查詢

前言 本文將學習如何使用Vue.js快速搭建天氣預報界面,了解如何調用高德地圖API獲取所需的天氣數據,并掌握如何將兩者有機結合,實現一個功能豐富、體驗出色的天氣預報應用 無論您是前端新手還是有一定經驗,相信這篇教程都能為您帶來收獲。讓我們一起開始這段精彩的Vue.js 高德…

桌面懸浮備忘錄哪個好?能在桌面懸浮使用的備忘app

備忘錄是我們日常工作和生活中的常用工具&#xff0c;它幫助我們記錄重要信息&#xff0c;提醒我們完成各項任務。而將備忘錄懸浮在桌面上使用&#xff0c;無疑能進一步提高我們的工作效率。想象一下&#xff0c;在處理復雜的工作任務時&#xff0c;你能夠隨時在桌面上查看提醒…