最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用pandas操作Excel表格的詳細(xì)入門教程

 更新時間:2026年01月04日 09:41:11   作者:杰瑞不懂代碼  
Pandas擅長高效處理大規(guī)模數(shù)據(jù)(如百萬行數(shù)據(jù)篩選僅需0.x秒),相比xlwings更適合計算任務(wù),本文介紹了Pandas庫在數(shù)據(jù)處理中的優(yōu)勢及其基礎(chǔ)用法,感興趣的小伙伴可以了解下

一、前言

為什么要學(xué)習(xí)pandas?我們之前其實已經(jīng)接觸了xlwings,它的強(qiáng)項是控制 Excel。比如打開文件、讀寫單元格、設(shè)置字體顏色、操作圖表。它不擅長計算,但是如果用 xlwings 逐行遍歷 10 萬行數(shù)據(jù)做加法,速度會比蝸牛還慢,同樣如果用VBA處理,龐大的數(shù)據(jù)處理需求,就有點(diǎn)難為二位了

因此 pandas 是“超級加工廠”:它的強(qiáng)項是計算和處理數(shù)據(jù)。它把數(shù)據(jù)加載到內(nèi)存(RAM)里,處理 100 萬行數(shù)據(jù)的篩選、求和、匹配,通常只需要 0.x 秒,下面我們主要了解一下它的基礎(chǔ)使用用法。

如果需要使用這個包,我們一樣使用pip命令進(jìn)行安裝,然后通過import pandas as pd 進(jìn)行引入,就可以使用了:

pip install pandas

二、理解series和DataFrame

2.1 創(chuàng)建Series

Series是一種類似于一維數(shù)組的對象,它由一組數(shù)據(jù)(不同數(shù)據(jù)類型)以及一組與之相關(guān)的數(shù)據(jù)標(biāo)簽(即索引)組成。

sr = pd.Series(["a",4,6,"今天",8])
print(sr)
print(sr.index) # 顯示索引 RangeIndex(start=0, stop=5, step=1)

注意這里我們沒有給sr一個index,因此默認(rèn)是用數(shù)字來表示的,indexpandas的標(biāo)識符,用于標(biāo)識每一行的位置,輸出的sr結(jié)果如下,series 可以代表包含不同的數(shù)據(jù)類型:

0     a
1     4
2     6
3    今天
4     8
dtype: object

那如果我們給定index,得到的結(jié)果就是:

sr = pd.Series(["a",4,6,"今天",8],index=["A","B","C","D","E"])
print(sr)
print(sr.index) # 顯示索引 Index(['A', 'B', 'C', 'D', 'E'], dtype='object')

運(yùn)行結(jié)果:

A     a
B     4
C     6
D    今天
E     8
dtype: object

我們也可以通過字典的方式生成,如下:

sort_dictionary = {"A":"a","B":4,"C":6,"D":"今天","E":8}
sr = pd.Series(sort_dictionary)
print(sr) # 字典的鍵作為索引,值作為具體的第二列的值

2.2 讀取Series

Series的讀取類似字典的讀取方式,如下如果取的是一個值,那么返回的就是一個值的具體類型,比如只通過sr["A"]取值,那么返回的類型是<class 'str'>,而如果取得是多個,則返回的類型還是series

sort_dictionary = {"A":"a","B":4,"C":6,"D":"今天","E":8}
sr = pd.Series(sort_dictionary)
print(sr["A"]) # 顯示索引為A的值
print(type(sr["A"])) # 顯示索引為A的值的類型
print("=========") # 分隔線
print(sr[["A","B","C"]]) # 顯示索引為A,B,C的值
print(type(sr[["A","B","C"]])) # 顯示索引為A,B,C的值的類型

輸出為:

a
<class 'str'>
=========
A    a
B    4
C    6
dtype: object
<class 'pandas.core.series.Series'>

2.3 創(chuàng)建DataFrame

我們上面提到的Series只是一個一維的,但是DataFrame就將其帶入到了二維的場景:

df = pd.DataFrame({
    "A": [1, 2, 3],
    "B": [4, 5, 6],
    "C": [7, 8, 9]
},index=["a","b","c"])
print(df)

輸出為:

   A  B  C
a  1  4  7
b  2  5  8
c  3  6  9

其實你可以發(fā)現(xiàn)內(nèi)部就是一個字典,然后我們通過index指定了索引,如果說沒有給具體的索引,那么第一列就是0,1,2,我們也可以通過以下命令打印此DataFrame的具體信息:

print(df.dtypes) # 顯示數(shù)據(jù)類型
print(df.index) # Index(['a', 'b', 'c'], dtype='object')
print(df.columns) # Index(['A', 'B', 'C'], dtype='object')

2.4 讀取DataFrame

(1)按列讀出

我們通過下面的命令讀取上面創(chuàng)建的DataFrame:

print(df["A"]) # 顯示列A
print(type(df["A"])) # 顯示列A的類型
print("========") # 分隔線
print(df[["A","B"]]) # 顯示列A,B
print(type(df[["A","B"]])) # 顯示列A,B的類型

可以看到在控制臺輸出,可以看出是一列一列取的,如果只是看一列,那類型為Series,如果是兩列,就是DataFrame

a    1
b    2
c    3
Name: A, dtype: int64
<class 'pandas.core.series.Series'>
========
   A  B
a  1  4
b  2  5
c  3  6
<class 'pandas.core.frame.DataFrame'>

(2)按行讀出

那如果需要按行讀出呢,我們可以使用loc方法,如下:

print(df.loc["a"])
print(type(df.loc["a"]))

得到的輸出結(jié)果如下,可以發(fā)現(xiàn)取出的是一維數(shù)組,因此類型還是Series

A    1
B    4
C    7
Name: a, dtype: int64
<class 'pandas.core.series.Series'>

而如果我們同時需要取兩行的話,就可以通過列表切片的方式進(jìn)行索引

print(df.loc["a":"b"])
print(type(df.loc["a":"b"]))

輸出結(jié)果如下,可以發(fā)現(xiàn)取出的是2行多列,因此是二維數(shù)組,數(shù)據(jù)類型就變成DataFrame了:

   A  B  C
a  1  4  7
b  2  5  8
<class 'pandas.core.frame.DataFrame'>

(3)單個數(shù)據(jù)或區(qū)域讀出

同時我們也可以實現(xiàn)單個單元格的獲取和指定區(qū)域的獲?。?/p>

print(df.loc["a","A"]) # 顯示索引為a,列名為A的值
print("="*20) # 分割線
print(df.loc["a":"b","A"]) # 顯示索引為a到b,列名為A的值

輸出如下:

1
====================
a    1
b    2
Name: A, dtype: int64

三、聯(lián)動EXCEL進(jìn)行數(shù)據(jù)讀取

3.1 加載EXCEL文件

比如我們有一個DATA.xlsx 文件,我們首先簡單進(jìn)行讀?。?/p>

import pandas as pd

file_path = r"C:\Users\22330\Desktop\進(jìn)行中\(zhòng)DATA.xlsx"
df = pd.read_excel(file_path) # 讀取對應(yīng)的文件
print(df)
print(df.index) 
print(df.index.is_unique) # True

可以看到,打印出了開始5行和最后的五行,最左側(cè)的一列數(shù)字是pandas的標(biāo)識符,用于標(biāo)識每一行的位置,在df輸出的最后,也告知了數(shù)據(jù)源的形狀,是606行*8列。當(dāng)然如果看的是csv文件,可以把read_excel()改成read_csv()。

有的時候我們只想看數(shù)據(jù)的前幾行數(shù)據(jù),就可以使用(只會顯示前5行數(shù)據(jù)

print(df.head()) # 顯示前五行數(shù)據(jù)

如果我們想要看此表的詳細(xì)信息,可以通過df.info()得到

print(df.info()) # 顯示數(shù)據(jù)框的信息,包括列名、非空值數(shù)量、數(shù)據(jù)類型等

可以看到在上面的圖中打印出來了DATA.xlsx中每一列的具體信息,是否有空值,數(shù)據(jù)類型,文件大小等。

如果單純只是想要看一下數(shù)據(jù)區(qū)域的大小,或者列名,或者數(shù)據(jù)類型,可以嘗試以下命令:

print(df.shape) # 顯示數(shù)據(jù)行數(shù)和列數(shù)
print(df.columns) # 顯示列名
print(df.dtypes) # 顯示數(shù)據(jù)類型

3.2 使用pandas進(jìn)行數(shù)據(jù)讀取

可以看到我們的第一列是出庫日期,我們可以用出庫日期來作為索引,因此可以使用以下方法,將出庫日期作為索引列,這樣方便我們后期的查詢,其中inplace=True表示將"出庫日期"列設(shè)置為 DataFrame 的索引,并且 直接修改原始的 df ,而不是返回一個新的:

df.set_index("出庫日期",inplace=True)
print(df.head())

我們打印一下開始的幾行,可以看到索引已經(jīng)變成出庫日期了:

現(xiàn)在比如我們想要知道 2023-06-03 出庫的貨物的 安全等級,就可以這樣寫:

print(df.loc["2023-06-03","安全等級"]) # D

或者可以進(jìn)行多個數(shù)據(jù)的查詢:

print(df.loc["2023-06-03",["安全等級","產(chǎn)品類別"]]) 
print("="*60) # 分割線
print(df.loc["2023-06-03":"2023-06-05",["安全等級","產(chǎn)品類別"]])

輸出結(jié)果為:

安全等級       D
產(chǎn)品類別    家居用品
Name: 2023-06-03 00:00:00, dtype: object
============================================================
           安全等級  產(chǎn)品類別
出庫日期
2023-06-03    D  家居用品
2023-06-04    C    服裝
2023-06-05    D    食品

或者我們的行和列都可以變成數(shù)據(jù)區(qū)間,例如:

print(df.loc["2023-06-03":"2023-06-05","產(chǎn)品經(jīng)理":"地區(qū)"])

輸出:

                   產(chǎn)品經(jīng)理  產(chǎn)品類別  地區(qū)
出庫日期
2023-06-03   Bob-Smith  家居用品  西北
2023-06-04   Bob-Smith    服裝  華北
2023-06-05  Mary-Joson    食品  西北

3.3 使用pandas進(jìn)行條件查詢

比如我們想要查詢產(chǎn)品經(jīng)理為Jerry的所有記錄,就可以這樣寫,下方的 : 代表返回所有列:

print(df.loc[df["產(chǎn)品經(jīng)理"]=="Jerry",:])

于是可以看到,輸出中返回了篩選之后的結(jié)果,注意這里的98行只包括數(shù)據(jù)源(不包括標(biāo)題行),因此共98條符合的記錄:

也可以把條件寫的復(fù)雜一些,然后進(jìn)行多條件的篩選,也可以返回指定的列,如下方的寫法:

# 顯示產(chǎn)品經(jīng)理為Jerry且安全等級為D的所有數(shù)據(jù)
print(df.loc[(df["產(chǎn)品經(jīng)理"]=="Jerry")&(df["安全等級"]=="D"),:]) 
# 顯示產(chǎn)品經(jīng)理為Jerry且安全等級為D的銷售額和地區(qū)
print(df.loc[(df["產(chǎn)品經(jīng)理"]=="Jerry")&(df["安全等級"]=="D"),["銷售額(元)","地區(qū)"]])

以上就是使用pandas操作Excel表格的詳細(xì)入門教程的詳細(xì)內(nèi)容,更多關(guān)于pandas操作Excel表格的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python使用wxPython和PyMuPDF實現(xiàn)合并PDF文檔

    Python使用wxPython和PyMuPDF實現(xiàn)合并PDF文檔

    處理大量的PDF文檔可能會變得復(fù)雜和耗時,但是,使用Python編程和一些強(qiáng)大的庫,可以使這個任務(wù)變得簡單而高效,下面我們就來看看Python如何使用wxPython和PyMuPDF合并PDF文檔并自動復(fù)制到剪貼板吧
    2023-11-11
  • python實現(xiàn)Scrapy爬取網(wǎng)易新聞

    python實現(xiàn)Scrapy爬取網(wǎng)易新聞

    這篇文章主要介紹了python實現(xiàn)Scrapy爬取網(wǎng)易新聞,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 使用Python合并?Excel單元格指定行列或單元格范圍

    使用Python合并?Excel單元格指定行列或單元格范圍

    合并?Excel?單元格是?Excel?數(shù)據(jù)處理和表格設(shè)計中的一項常用操作,本文將介紹如何通過Python合并Excel?中的指定行列或單元格范圍,需要的可以了解下
    2025-01-01
  • Python matplotlib如何繪制各種流線圖

    Python matplotlib如何繪制各種流線圖

    在Python中不僅可以繪制折線圖、柱狀圖、散點(diǎn)圖等常規(guī)圖外,還支持繪制量場圖、頻譜圖、提琴圖、箱型圖等特殊圖。本文將主要介紹如何繪制流線圖,需要的朋友可以參考一下
    2021-12-12
  • pytorch報錯問題:ValueError: num_samples should be a positive integer value, but got num_samples=0

    pytorch報錯問題:ValueError: num_samples should be

    這篇文章主要介紹了pytorch報錯問題:ValueError: num_samples should be a positive integer value, but got num_samples=0的解決方案,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 深度學(xué)習(xí)TextRNN的tensorflow1.14實現(xiàn)示例

    深度學(xué)習(xí)TextRNN的tensorflow1.14實現(xiàn)示例

    這篇文章主要介紹了深度學(xué)習(xí)TextRNN的tensorflow1.14實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • 使用Python處理BAM的方法

    使用Python處理BAM的方法

    這篇文章主要介紹了使用Python處理BAM的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • Python如何獲得百度統(tǒng)計API的數(shù)據(jù)并發(fā)送郵件示例代碼

    Python如何獲得百度統(tǒng)計API的數(shù)據(jù)并發(fā)送郵件示例代碼

    這篇文章主要給大家介紹了關(guān)于Python如何獲得百度統(tǒng)計API的數(shù)據(jù)并發(fā)送郵件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • Python的pygame安裝教程詳解

    Python的pygame安裝教程詳解

    Pygame是跨平臺Pyth,Pygame 作者是 Pete Shinners, 協(xié)議為 GNU Lesser General Public License。這篇文章主要介紹了Python的pygame安裝教程,需要的朋友可以參考下
    2020-02-02
  • 在VS Code中切換和設(shè)置Python解釋器的完整指南

    在VS Code中切換和設(shè)置Python解釋器的完整指南

    這篇文章主要為大家詳細(xì)介紹了在VS Code中切換Python環(huán)境的詳細(xì)方法,支持Windows/macOS/Linux系統(tǒng)及虛擬環(huán)境/Conda環(huán)境,有需要的小伙伴可以了解下
    2026-03-03

最新評論

凤冈县| 镶黄旗| 岳阳市| 锦州市| 勐海县| 伽师县| 晴隆县| 尤溪县| 阿尔山市| 探索| 多伦县| 南乐县| 镇康县| 陵川县| 江都市| 章丘市| 威远县| 井冈山市| 江油市| 靖安县| 巴楚县| 革吉县| 屏南县| 枝江市| 台安县| 新余市| 宿松县| 油尖旺区| 石渠县| 临湘市| 山东省| 东乌| 赤峰市| 伽师县| 屯门区| 揭东县| 漳平市| 龙州县| 盖州市| 江山市| 定兴县|