pandas是基於NumPy的一種數據分析工具,提供了大量的數據操作和分析功能,特別是在數據清洗和預處理方面,更是為廣大數據從業者提供了強大的支持,成為數據科學、統計分析和金融領域不可或缺的技術工具。
一、數據結構
pandas主要支持三種數據結構Series、DataFrame以及Panel,其中最常用的是DataFrame。DataFrame可以看做一個關係型資料庫的數據表,其中包含多行多列的數據。
#創建DataFrame
import pandas as pd
data = {'name':['Tom', 'Jack', 'Steve', 'Ricky'],'age':[28,34,29,42]}
df = pd.DataFrame(data)
print df
#從CSV讀取DataFrame
df = pd.read_csv('data.csv')
print df
在創建DataFrame時,可以使用Python基本數據類型以及NumPy、字典等格式進行創建;在從CSV讀取DataFrame時,只需要指定CSV文件名稱即可實現讀取數據並創建DataFrame。
二、數據操作
在數據清洗和預處理方面,pandas提供了大量的數據操作功能,比如缺失值處理、數據篩選與排序、數據聚合與統計等等。
1. 缺失值處理
#查找缺失值
df.isnull()
#刪除缺失值
df.dropna()
#填充缺失值
df.fillna(0)
在數據處理過程中,經常會出現缺失值的情況。pandas提供了isnull()函數可以查找缺失值,然後可以使用dropna()函數刪除缺失值,或者使用fillna()函數將缺失值填充為指定的值。
2. 數據篩選與排序
#數據篩選
df[df['age'] > 30]
#數據排序
df.sort_values('age')
在數據分析中,往往需要篩選特定條件下的數據,可以使用df[df[‘age’] > 30]這種方式實現數據篩選;針對特定欄位可以使用sort_values()函數實現數據排序。
3. 數據聚合與統計
#求和
df.sum()
#平均值
df.mean()
#最大值
df.max()
#最小值
df.min()
在進行數據分析和統計過程中,經常需要對數據進行聚合和統計。pandas提供了sum()、mean()、max()、min()等函數,可以很方便地實現數據的聚合和統計。
三、數據可視化
數據可視化可以有效地幫助我們展示數據的趨勢和變化,pandas可以使用matplotlib庫實現數據可視化。
1. 折線圖
%matplotlib inline
import matplotlib.pyplot as plt
#折線圖
df.plot(kind='line',x='name',y='age')
plt.show()
使用matplotlib庫,可以通過plot()函數實現繪製各種圖形。針對摺線圖,通過指定kind=’line’可以實現繪製折線圖。
2. 柱狀圖
#柱狀圖
df.plot(kind='bar',x='name',y='age')
plt.show()
針對柱狀圖,只需要將kind屬性指定為bar即可實現繪製柱狀圖。
3. 餅圖
#餅圖
df.plot(kind='pie',x='name',y='age')
plt.show()
使用kind=’pie’屬性可以實現繪製餅圖。
四、數據分析實例
最後,我們通過一個簡單的實例來展示pandas的強大功能。
使用pandas和matplotlib,我們可以對股票數據進行分析,並繪製股票價格走勢圖。
#導入數據
import pandas_datareader as pdr
import datetime
AAPL = pdr.get_data_yahoo('AAPL',
start=datetime.datetime(2006, 10, 1),
end=datetime.datetime(2012, 1, 1))
#計算收益率
AAPL['ret'] = AAPL['Close'].pct_change()
#繪製走勢圖
AAPL[['Close','ret']].plot(subplots=True,color='blue',figsize=(10,6))
#數據統計
AAPL.describe()
#數據相關性分析
AAPL.corr()
以上代碼實現了獲取蘋果公司股票數據,並計算收益率。然後使用subplots屬性和figsize屬性繪製走勢圖,通過describe()函數實現對數據的統計分析,使用corr()函數實現對數據相關性的分析。
總結
pandas作為一種強大的數據分析工具,為數據科學和金融分析領域提供了強有力的技術支持。通過本文中的介紹,大家可以清晰地了解了pandas的數據結構、數據操作、數據可視化、數據分析等方面的功能。相信在實際工作和學習過程中,這些知識點對大家都會起到一定的幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/249361.html