Pandas教學
Pandas環境安裝配置
Pandas數據結構
Pandas快速入門
Pandas系列
Pandas數據幀(DataFrame)
Pandas面板(Panel)
Pandas基本功能
Pandas描述性統計
Pandas函數應用
Pandas重建索引
Pandas迭代
Pandas排序
Pandas字符串和文本數據
Pandas選項和自定義
Pandas索引和選擇數據
Pandas統計函數
Pandas窗口函數
Pandas聚合
Pandas缺失數據
Pandas分組(GroupBy)
Pandas合併/連接
Pandas級聯
Pandas日期功能
Pandas時間差(Timedelta)
Pandas分類數據
Pandas可視化
Pandas IO工具
Pandas稀疏數據
Pandas注意事項&竅門
Pandas與SQL比較
Pandas統計函數
統計方法有助於理解和分析數據的行爲。現在我們將學習一些統計函數,可以將這些函數應用到Pandas的對象上。
pct_change()函數
系列,DatFrames和Panel都有pct_change()
函數。此函數將每個元素與其前一個元素進行比較,並計算變化百分比。
import pandas as pd
import numpy as np
s = pd.Series([1,2,3,4,5,4])
print (s.pct_change())
df = pd.DataFrame(np.random.randn(5, 2))
print (df.pct_change())
執行上面示例代碼,得到以下結果 -
0 NaN
1 1.000000
2 0.500000
3 0.333333
4 0.250000
5 -0.200000
dtype: float64
0 1
0 NaN NaN
1 -15.151902 0.174730
2 -0.746374 -1.449088
3 -3.582229 -3.165836
4 15.601150 -1.860434
默認情況下,pct_change()
對列進行操作; 如果想應用到行上,那麼可使用axis = 1
參數。
協方差
協方差適用於系列數據。Series對象有一個方法cov
用來計算序列對象之間的協方差。NA
將被自動排除。
Cov系列示例
import pandas as pd
import numpy as np
s1 = pd.Series(np.random.randn(10))
s2 = pd.Series(np.random.randn(10))
print (s1.cov(s2))
執行上面示例代碼,得到以下結果 -
0.0667296739178
當應用於DataFrame
時,協方差方法計算所有列之間的協方差(cov
)值。
import pandas as pd
import numpy as np
frame = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
print (frame['a'].cov(frame['b']))
print (frame.cov())
執行上面示例代碼,得到以下結果 -
-0.406796939839
a b c d e
a 0.784886 -0.406797 0.181312 0.513549 -0.597385
b -0.406797 0.987106 -0.662898 -0.492781 0.388693
c 0.181312 -0.662898 1.450012 0.484724 -0.476961
d 0.513549 -0.492781 0.484724 1.571194 -0.365274
e -0.597385 0.388693 -0.476961 -0.365274 0.785044
注 - 觀察第一個語句中
a
和b
列之間的cov
結果值,與由DataFrame上的cov
返回的值相同。
相關性
相關性顯示了任何兩個數值(系列)之間的線性關係。有多種方法來計算pearson
(默認),spearman
和kendall
之間的相關性。
import pandas as pd
import numpy as np
frame = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
print (frame['a'].corr(frame['b']))
print (frame.corr())
執行上面示例代碼,得到以下結果 -
-0.613999376618
a b c d e
a 1.000000 -0.613999 -0.040741 -0.227761 -0.192171
b -0.613999 1.000000 0.012303 0.273584 0.591826
c -0.040741 0.012303 1.000000 -0.391736 -0.470765
d -0.227761 0.273584 -0.391736 1.000000 0.364946
e -0.192171 0.591826 -0.470765 0.364946 1.000000
如果DataFrame中存在任何非數字列,則會自動排除。
數據排名
數據排名爲元素數組中的每個元素生成排名。在關係的情況下,分配平均等級。
import pandas as pd
import numpy as np
s = pd.Series(np.random.np.random.randn(5), index=list('abcde'))
s['d'] = s['b'] # so there's a tie
print (s.rank())
執行上面示例代碼,得到以下結果 -
a 4.0
b 1.5
c 3.0
d 1.5
e 5.0
dtype: float64
Rank
可選地使用一個默認爲true
的升序參數; 當錯誤時,數據被反向排序,也就是較大的值被分配較小的排序。
Rank
支持不同的tie-breaking
方法,用方法參數指定 -
-
average
- 並列組平均排序等級 -
min
- 組中最低的排序等級 -
max
- 組中最高的排序等級 -
first
- 按照它們出現在數組中的順序分配隊列