新聞中心
Pandas簡介
Pandas 最常用于處理數(shù)據(jù)集。它具有分析、清理、探索和操作數(shù)據(jù)的功能。"Pandas"這個名稱既指"Panel Data",也指"Python Data Analysis"。
,Pandas 讓我們能夠分析大數(shù)據(jù)并根據(jù)統(tǒng)計理論得出結(jié)論。Pandas 可以清理雜亂的數(shù)據(jù)集,使它們具有可讀性和相關(guān)性。相關(guān)數(shù)據(jù)在數(shù)據(jù)科學(xué)中非常重要。
創(chuàng)新互聯(lián)建站致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷,包括成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、SEO優(yōu)化、網(wǎng)絡(luò)推廣、整站優(yōu)化營銷策劃推廣、電子商務(wù)、移動互聯(lián)網(wǎng)營銷等。創(chuàng)新互聯(lián)建站為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制及解決方案,創(chuàng)新互聯(lián)建站核心團隊10多年專注互聯(lián)網(wǎng)開發(fā),積累了豐富的網(wǎng)站經(jīng)驗,為廣大企業(yè)客戶提供一站式企業(yè)網(wǎng)站建設(shè)服務(wù),在網(wǎng)站建設(shè)行業(yè)內(nèi)樹立了良好口碑。
安裝Pandas
使用pip來安裝Pandas。
pip install pandas
Pandas 中的數(shù)據(jù)類型
Pandas 中使用了兩種類型的對象。一個是“Series”,用于創(chuàng)建和存儲一維值,例如列或行。另一個是“ DataFrame ”,可以認為是一張表:它是二維的。DataFrame 包含行和列。在數(shù)據(jù)科學(xué)中將經(jīng)常使用 Pandas DataFrames??梢栽?Python 中編寫代碼時創(chuàng)建 Series 和 DataFrames,但通常情況下,DataFrames 不是在 Pandas 上創(chuàng)建的:數(shù)據(jù)是從其他地方導(dǎo)入的,因為在編寫程序時很難逐個鍵入所有數(shù)據(jù)。此數(shù)據(jù)通常采用逗號分隔值 (.csv) 文件的形式。一個 .csv 文件可以使用 Pandas 轉(zhuǎn)換為 DataFrame,然后你可以用它做很多事情。
- Series
Series 與 NumPy 數(shù)組非常相似(實際上它構(gòu)建在 NumPy 數(shù)組對象之上)。NumPy 數(shù)組與 Series 的區(qū)別在于,Series 可以具有軸標(biāo)簽,這意味著它可以由標(biāo)簽索引,而不僅僅是數(shù)字位置。它也不需要保存數(shù)字數(shù)據(jù),它可以保存任意 Python 對象。
- Series索引及數(shù)據(jù)列表代碼示例。
import pandas as pd
import numpy as np
index = ['China','Canada','Mexico']
data = [1820,1920,1921]
mySeries = pd.Series(data,index)
print(mySeries)
ran_data = np.random.randint(0,100,4)
print(ran_data)
names = ['Sam','Ram','Max','Bob']
ages = pd.Series(ran_data,names)
print(ages)
pdSeries = pd.Series(data=[100,250,400,500],index=['Q1 Sales','Q2 Sales','Q3 Sales','Q4 Sales'],name='RedBull Sales 2021')
print(pdSeries)
代碼運行輸出如下圖所示
- 從Python字典生成Series代碼示例。
import pandas as pd
age = {'Bob':15,'Frank':23,'Mailo':18}
dictSeries = pd.Series(age)
print(dictSeries)
代碼運行輸出如下圖所示:
- Series的命名索引,類似字典的取值方式,具體請看下面的代碼示例,這里需要注意如果取值失敗會直接expect錯誤,所以在取值的時候必須保證key跟index是存在的。
import pandas as pd
q1 = {'Japan': 80, 'China': 450, 'India': 200, 'USA': 250}
q2 = {'Brazil': 100,'China': 500, 'India': 210,'USA': 260}
sales_q1 = pd.Series(q1)
sales_q2 = pd.Series(q2)
print(sales_q1)
print(sales_q2)
print(sales_q1['India'])
print(sales_q2[2])
代碼運行結(jié)果如下圖所示:
- Series還可以做一些數(shù)學(xué)運算,下面是代碼示例。
import pandas as pd
q1 = {'Japan': 80, 'China': 450, 'India': 200, 'USA': 250}
q2 = {'Brazil': 100,'China': 500, 'India': 210,'USA': 260}
sales_q1 = pd.Series(q1)
sales_q2 = pd.Series(q2)
print(sales_q1.keys()) # 取Series的key
print(sales_q1.values) # 取Series的values
new_sales_q1 = sales_q1 * 2
print(new_sales_q1)
float_sales_q1 = sales_q1 /100
print(float_sales_q1)
代碼運行輸出結(jié)果如下圖所示:
- DataFrames
Pandas DataFrame 是一種二維數(shù)據(jù)結(jié)構(gòu),如二維數(shù)組或具有行和列的表。
- 創(chuàng)建DataFrame對象。
import pandas as pd
import numpy as np
np.random.seed(10)
data = np.random.randint(0,101,(4,3))
print(data)
x = ['CA','NY','AZ','TX']
y = ['Jan','Feb','Mar']
df = pd.DataFrame(data,x,y)
print(df)
代碼運行結(jié)果輸出如下圖所示:
- 從字典創(chuàng)建DataFrame對象。
import pandas as pd
dict_data = pd.DataFrame({'baidu': [10000,20000],
'aliyun':[30000,45000]},
index = ['Exicutive','Techie'])
print(dict_data)
代碼運行結(jié)果輸出如下圖所示:
- 讀取csv文件創(chuàng)建DataFrame對象。
讀取csv文件需要安裝xlrd跟openpyxl模塊。
pip install xlrd
pip install openpyxl
import pandas as pd
df_csv = pd.read_csv("Employees.csv") # 讀取csv文件
#df_excel = pd.read_excel("xxx.excel") #讀取excel文件
print(df)
代碼運行結(jié)果輸出:
- 獲取DataFrame的基本信息。
- 返回所有列名
import pandas as pd
df = pd.read_csv("Employees.csv")
df.columns
- 返回前幾行數(shù)據(jù)
import pandas as pd
df = pd.read_csv("Employees.csv")
df.head(5)
- 返回后幾行數(shù)據(jù)
import pandas as pd
df = pd.read_csv("Employees.csv")
df.tail(3)
- 獲取數(shù)據(jù)info
import pandas as pd
df = pd.read_csv("Employees.csv")
df.info
- 生成描述性統(tǒng)計
import pandas as pd
df = pd.read_csv("Employees.csv")
df.describe()
df.describe().transpose() # 改變表格的對齊方式
如何過濾數(shù)據(jù)呢?
- 單個條件
針對每一行進行測試的單個條件,比如head,tail函數(shù)。
- 多個條件
可以在一行中測試多個條件。以下示例返回由女性且工資大于 5000的情況。
import pandas as pd
df = pd.read_csv("Employees.csv")
filter1 = df["工資"] > 5000
filter2 = df["性別"] == "F"
result = filter1 & filter2
df[result].head(3)
- 使用查詢方法
查詢方法提供了一種替代方法,通常是一種比上述方法更易讀的過濾數(shù)據(jù)的方法。表示條件的字符串被傳遞給查詢方法以過濾數(shù)據(jù)。
import pandas as pd
df = pd.read_csv("Employees.csv")
df.query('工資 > 8000').head(2)
import pandas as pd
df = pd.read_csv("Employees.csv")
df.query('工資 > 5000 and 性別 =="F"')
- 聚合方法
聚合的技術(shù)定義是用單個數(shù)字匯總一系列值。例如 sum、mean、median、max 和 min 都是聚合方法的例子
import pandas as pd
df=pd.DataFrame({'user':['Alice','Tom','Bob','Alice','Bob','Alice'],'money':range(6)})
df.groupby(['user']).sum() # sum聚合
結(jié)論
這些是 Pandas 中基本操作的一些示例。在 Pandas 中還能夠創(chuàng)建數(shù)據(jù)可視化。
本文轉(zhuǎn)載自微信公眾號「愛編碼的社畜」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系愛編碼的社畜公眾號。
分享題目:Python—如何正確打開Pandas庫的姿勢
網(wǎng)站地址:http://fisionsoft.com.cn/article/dpjhdhd.html


咨詢
建站咨詢

