Python的pandas庫基礎(chǔ)知識超詳細(xì)教程
Pandas是Python中用于數(shù)據(jù)處理和分析的核心庫,提供了快速、靈活且明確的數(shù)據(jù)結(jié)構(gòu),主要包括一維的Series和二維的DataFrame。它支持從CSV、Excel、SQL等多種數(shù)據(jù)源導(dǎo)入數(shù)據(jù),并具備數(shù)據(jù)清洗、合并、重塑、分組統(tǒng)計、時間序列分析等功能。Pandas還易于與其他Python數(shù)據(jù)分析庫集成,是金融、統(tǒng)計、社會科學(xué)和工程等領(lǐng)域進(jìn)行數(shù)據(jù)分析和處理的強(qiáng)大工具。
一、配置環(huán)境
在命令行中運(yùn)行以下命令:
pip show pandas

如果為以下內(nèi)容,則表示未安裝pandas庫

要安裝Pandas庫,你可以使用Python的包管理工具pip。在命令行界面(例如終端、命令提示符或Anaconda Prompt,取決于你的操作系統(tǒng)和Python安裝方式)中,輸入以下命令:
pip install pandas

安裝成功展示圖:

二、序列和數(shù)據(jù)表
2.1 初始化
Series可以存儲任何數(shù)據(jù)類型,例如整數(shù)、浮點數(shù)、字符串、python對象等,每個元素都有一個索引。
import pandas as pd A = pd.Series(data = [1, 2, 3, 4, 5], index = ["A", "B", "C", "D", "E"], name = "A1") print(A)

2.2 獲取數(shù)值
import pandas as pd
A = pd.Series(data = [1, 2, 3, 4, 5], index = ["A", "B", "C", "D", "E"], name = "A1")
print(A)
print("數(shù)值:", A.values)
2.3 獲取索引
import pandas as pd
A = pd.Series(data = [1, 2, 3, 4, 5], index = ["A", "B", "C", "D", "E"], name = "A1")
print(A)
print("索引:", A.index)
2.4 索引取內(nèi)容
import pandas as pd A = pd.Series(data = [1, 2, 3, 4, 5], index = ["A", "B", "C", "D", "E"], name = "A1") print(A) print(A[["A", "C"]])

2.5 索引改變?nèi)≈?/h3>
import pandas as pd
A = pd.Series(data = [1, 2, 3, 4, 5], index = ["A", "B", "C", "D", "E"], name = "A1")
print(A)
A[["A", "C"]] = [11, 12]
print(A)
import pandas as pd A = pd.Series(data = [1, 2, 3, 4, 5], index = ["A", "B", "C", "D", "E"], name = "A1") print(A) A[["A", "C"]] = [11, 12] print(A)

2.6 字典生成序列
import pandas as pd
A = pd.Series({"A":1, "B":2, "C":3, "D":4})
print(A)
2.7 計算取值出現(xiàn)次數(shù)
import pandas as pd
A = pd.Series({"A":1, "B":2, "C":3, "D":4, "E":2, "F":3})
print(A.value_counts())
2.8 數(shù)據(jù)表
import pandas as pd
A = {"name": ["小米", "小華", "小魅", "小破", "小領(lǐng)"],
"age": ["20", "18", "16", "23", "19"],
"sex": ["男", "男", "女", "男", "女"]}
B = pd.DataFrame(A)
print(B)
2.9 數(shù)據(jù)表添加新變量
import pandas as pd
A = {"name": ["小米", "小華", "小魅", "小破", "小領(lǐng)"],
"age": ["20", "18", "16", "23", "19"],
"sex": ["男", "男", "女", "男", "女"]}
B = pd.DataFrame(A)
print(B)
B["high"] = ["180", "183", "160", "178", "158"]
print(B)
2.10 獲取列名
import pandas as pd
A = {"name": ["小米", "小華", "小魅", "小破", "小領(lǐng)"],
"age": ["20", "18", "16", "23", "19"],
"sex": ["男", "男", "女", "男", "女"],
"high": ["180", "183", "160", "178", "158"]}
B = pd.DataFrame(A)
print(B)
print("數(shù)據(jù)表列名:", B.columns)
2.11 根據(jù)列名獲取數(shù)據(jù)
import pandas as pd
A = {"name": ["小米", "小華", "小魅", "小破", "小領(lǐng)"],
"age": ["20", "18", "16", "23", "19"],
"sex": ["男", "男", "女", "男", "女"],
"high": ["180", "183", "160", "178", "158"]}
B = pd.DataFrame(A)
print(B)
print(B[["name", "sex"]])
2.12 輸出固定行
import pandas as pd
A = {"name": ["小米", "小華", "小魅", "小破", "小領(lǐng)"],
"age": ["20", "18", "16", "23", "19"],
"sex": ["男", "男", "女", "男", "女"],
"high": ["180", "183", "160", "178", "158"]}
B = pd.DataFrame(A)
print(B.loc[2])
2.13 輸出多行
import pandas as pd
A = {"name": ["小米", "小華", "小魅", "小破", "小領(lǐng)"],
"age": ["20", "18", "16", "23", "19"],
"sex": ["男", "男", "女", "男", "女"],
"high": ["180", "183", "160", "178", "158"]}
B = pd.DataFrame(A)
print(B.loc[2 : 4])
2.14 輸出指定行和列
import pandas as pd
A = {"name": ["小米", "小華", "小魅", "小破", "小領(lǐng)"],
"age": ["20", "18", "16", "23", "19"],
"sex": ["男", "男", "女", "男", "女"],
"high": ["180", "183", "160", "178", "158"]}
B = pd.DataFrame(A)
print(B.loc[2 : 4, ["name", "high"]])
2.15 輸出性別為“男”的行和列
import pandas as pd
A = {"name": ["小米", "小華", "小魅", "小破", "小領(lǐng)"],
"age": ["20", "18", "16", "23", "19"],
"sex": ["男", "男", "女", "男", "女"],
"high": ["180", "183", "160", "178", "158"]}
B = pd.DataFrame(A)
print(B.loc[B.sex == "男", ["name", "sex"]])
2.16 獲取指定行
import pandas as pd
A = {"name": ["小米", "小華", "小魅", "小破", "小領(lǐng)"],
"age": ["20", "18", "16", "23", "19"],
"sex": ["男", "男", "女", "男", "女"],
"high": ["180", "183", "160", "178", "158"]}
B = pd.DataFrame(A)
print(B.iloc[0 : 2])
2.17 獲取指定列
import pandas as pd
A = {"name": ["小米", "小華", "小魅", "小破", "小領(lǐng)"],
"age": ["20", "18", "16", "23", "19"],
"sex": ["男", "男", "女", "男", "女"],
"high": ["180", "183", "160", "178", "158"]}
B = pd.DataFrame(A)
print(B.iloc[ : , 0 : 2])
2.18 獲取指定位置數(shù)據(jù)
import pandas as pd
A = {"name": ["小米", "小華", "小魅", "小破", "小領(lǐng)"],
"age": ["20", "18", "16", "23", "19"],
"sex": ["男", "男", "女", "男", "女"],
"high": ["180", "183", "160", "178", "158"]}
B = pd.DataFrame(A)
print(B.iloc[0 : 2, 0 : 2])
2.19 索引轉(zhuǎn)化
import numpy as np
import pandas as pd
A = {"name": ["小米", "小華", "小魅", "小破", "小領(lǐng)"],
"age": ["20", "18", "16", "23", "19"],
"sex": ["男", "男", "女", "男", "女"],
"high": ["180", "183", "160", "178", "158"]}
B = pd.DataFrame(A)
# 轉(zhuǎn)換為列表
print(B.iloc[list(B.sex == "男"), 0 : 3])
# 轉(zhuǎn)換為數(shù)組
print(B.iloc[np.array(B.sex == "男"), 0 : 3])
2.20 判斷條件
import numpy as np
import pandas as pd
A = {"name": ["小米", "小華", "小魅", "小破", "小領(lǐng)"],
"age": ["20", "18", "16", "23", "19"],
"sex": ["男", "男", "女", "男", "女"],
"high": ["180", "183", "160", "178", "158"]}
B = pd.DataFrame(A)
print(list(B.age >= "18"))
2.21 重新賦值
import numpy as np
import pandas as pd
A = {"name": ["小米", "小華", "小魅", "小破", "小領(lǐng)"],
"age": ["20", "18", "16", "23", "19"],
"sex": ["男", "男", "女", "男", "女"],
"high": ["180", "183", "160", "178", "158"]}
B = pd.DataFrame(A)
B.high = ["179", "186", "168", "183", "160"]
print(B)
三、數(shù)據(jù)聚合和分組運(yùn)算
3.1 獲取數(shù)據(jù)集
iris.csv(iris數(shù)據(jù)集、鳶尾花數(shù)據(jù)集)
3.2 讀取數(shù)據(jù)集
鳶尾花數(shù)據(jù)集(Iris Dataset),又稱安德森鳶尾花卉數(shù)據(jù)集(Anderson’s Iris Data Set),是數(shù)據(jù)科學(xué)與機(jī)器學(xué)習(xí)領(lǐng)域中最著名的經(jīng)典數(shù)據(jù)集之一。
鳶尾花數(shù)據(jù)集可以通過多種方式獲取,如Scikit-learn提供的內(nèi)置數(shù)據(jù)集,以及UCI機(jī)器學(xué)習(xí)庫等。獲取后,可以使用Python等編程語言進(jìn)行數(shù)據(jù)加載、預(yù)處理和模型訓(xùn)練等操作。
鳶尾花數(shù)據(jù)集以其簡潔明了的數(shù)據(jù)結(jié)構(gòu)和廣泛的應(yīng)用場景,成為了機(jī)器學(xué)習(xí)初學(xué)者的首選案例。通過學(xué)習(xí)和實踐這一數(shù)據(jù)集,初學(xué)者可以逐步掌握機(jī)器學(xué)習(xí)的基礎(chǔ)知識和技能。
import numpy as np
import pandas as pd
iris = pd.read_csv("D:/iris.csv")
print(iris.head())
3.3 計算每列均值
import numpy as np
import pandas as pd
iris = pd.read_csv("D:/iris.csv")
print(iris.iloc[ : , 1 : 5].apply(func = np.mean, axis = 0))
3.4 計算每列的最小值
import numpy as np
import pandas as pd
iris = pd.read_csv("D:/iris.csv")
min = iris.iloc[ : , 1 : 5].apply(func = np.min , axis = 0)
print(min)
3.5 計算每列的最大值
import numpy as np
import pandas as pd
iris = pd.read_csv("D:/iris.csv")
max = iris.iloc[ : , 1 : 5].apply(func = np.max , axis = 0)
print(max)
3.6 計算每列的樣本數(shù)量
import numpy as np
import pandas as pd
iris = pd.read_csv("D:/iris.csv")
size = iris.iloc[ : , 1 : 5].apply(func = np.size , axis = 0)
print(size)
3.7 行計算
只展示前五行
其中代碼的axis=0要改成axis=1
import numpy as np
import pandas as pd
iris = pd.read_csv("D:/iris.csv")
data = iris.iloc[0 : 5, 1 : 5].apply(func = (np.min, np.max, np.mean, np.std, np.var) , axis = 1)
print(data)
3.8 分組計算均值
import numpy as np
import pandas as pd
iris = pd.read_csv("D:/iris.csv")
res = iris.drop("Id", axis = 1).groupby(by = "Species").mean()
print(res)
3.9 分組計算偏度
import numpy as np
import pandas as pd
iris = pd.read_csv("D:/iris.csv")
res = iris.drop("Id", axis = 1).groupby(by = "Species").skew()
print(res)
3.10 聚合運(yùn)算
3.10.1 分組前
import numpy as np
import pandas as pd
iris = pd.read_csv("D:/iris.csv")
res = iris.drop("Id", axis = 1).agg({"SepalLengthCm" : ["min", "max", "mean"],
"SepalWidthCm" : ["min", "max", "mean"],
"PetalLengthCm" : ["min", "max", "mean"]})
print(res)
3.10.2 分組后
import numpy as np
import pandas as pd
iris = pd.read_csv("D:/iris.csv")
res = (iris.drop("Id", axis = 1).groupby(by = "SepalLengthCm")
.agg({"SepalLengthCm" : ["min", "max", "mean"],
"SepalWidthCm" : ["min"],
"PetalLengthCm" : ["skew"]}))
print(res)
四、數(shù)據(jù)可視化
Mtplotlib是Python中一個廣泛使用的繪圖庫,它提供了一個類似于MATLAB的繪圖框架。Mtplotlib可以生成高質(zhì)量的圖表,這些圖表可以用于數(shù)據(jù)可視化、科學(xué)研究、教育以及出版等領(lǐng)域。
4.1 安裝matplotlib庫
pip install matplotlib

安裝成功展示圖:

4.2 檢測matplotlib庫
pip show matplotlib

4.3 箱線圖
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
iris = pd.read_csv("D:/iris.csv")
iris.iloc[ : , 1 : 6].boxplot(column = ["SepalLengthCm", "SepalWidthCm", "PetalLengthCm", "PetalWidthCm"], by = "Species", figsize=(10,10))
plt.show()
4.4 散點圖
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
iris = pd.read_csv("D:/iris.csv")
color = iris.Species.map({"setosa" : "blue", "versicolor" : "green", "virginica" : "red"})
iris.plot(kind = "scatter" , x = "SepalLengthCm", y = "SepalWidthCm", s = 30, c = color, figsize = (10,10))
plt.show()
4.5 六邊形熱力圖
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
iris = pd.read_csv("D:/iris.csv")
iris.plot(kind = "hexbin" , x = "SepalLengthCm", y = "SepalWidthCm", gridsize = 15, figsize = (10,7), sharex = False)
plt.show()
4.6 折線圖
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
iris = pd.read_csv("D:/iris.csv")
iris.iloc[ : , 0 : 5].plot(kind = "line", x = "Id", figsize = (12, 8))
plt.show()
到此這篇關(guān)于Python的pandas庫基礎(chǔ)知識超詳細(xì)教程的文章就介紹到這了,更多相關(guān)Python的pandas庫基礎(chǔ)知識內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python tkinter之ComboBox(下拉框)的使用簡介
這篇文章主要介紹了Python tkinter之ComboBox(下拉框)的使用簡介,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-02-02
詳解基于Transformer實現(xiàn)電影評論星級分類任務(wù)
這篇文章主要為大家介紹了詳解基于Transformer實現(xiàn)電影評論星級分類任務(wù)過程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
python帶參數(shù)打包exe及調(diào)用方式
今天小編就為大家分享一篇python帶參數(shù)打包exe及調(diào)用方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
python 實現(xiàn)將Numpy數(shù)組保存為圖像
今天小編就為大家分享一篇python 實現(xiàn)將Numpy數(shù)組保存為圖像,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
python編程實現(xiàn)清理微信重復(fù)緩存文件
這篇文章主要為大家介紹了使用python編程來實現(xiàn)清理微信重復(fù)緩存文件的示例代碼過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11
對django views中 request, response的常用操作詳解
今天小編就為大家分享一篇對django views中 request, response的常用操作詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
python選取特定列 pandas iloc,loc,icol的使用詳解(列切片及行切片)
今天小編就為大家分享一篇python選取特定列 pandas iloc,loc,icol的使用詳解(列切片及行切片),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08

