Gấu trúc Python - Chức năng thống kê
Phương pháp thống kê giúp hiểu và phân tích hành vi của dữ liệu. Bây giờ chúng ta sẽ tìm hiểu một vài hàm thống kê, chúng ta có thể áp dụng trên các đối tượng Pandas.
Phần trăm thay đổi
Series, DatFrames và Panel, tất cả đều có chức năng pct_change(). Hàm này so sánh mọi phần tử với phần tử trước của nó và tính toán tỷ lệ phần trăm thay đổi.
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()
Nó là output như sau -
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
Theo mặc định, pct_change()hoạt động trên các cột; nếu bạn muốn áp dụng cùng một hàng một cách khôn ngoan, thì hãy sử dụngaxis=1() tranh luận.
Hiệp phương sai
Hiệp phương sai được áp dụng trên dữ liệu chuỗi. Đối tượng Series có một phương thức cov để tính hiệp phương sai giữa các đối tượng chuỗi. NA sẽ tự động bị loại trừ.
Dòng 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)
Nó là output như sau -
-0.12978405324
Phương pháp hiệp phương sai khi được áp dụng trên DataFrame, tính toán cov giữa tất cả các cột.
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()
Nó là output như sau -
-0.58312921152741437
a b c d e
a 1.780628 -0.583129 -0.185575 0.003679 -0.136558
b -0.583129 1.297011 0.136530 -0.523719 0.251064
c -0.185575 0.136530 0.915227 -0.053881 -0.058926
d 0.003679 -0.523719 -0.053881 1.521426 -0.487694
e -0.136558 0.251064 -0.058926 -0.487694 0.960761
Note - Quan sát cov giữa a và b trong câu lệnh đầu tiên và cùng là giá trị được trả về bởi cov trên DataFrame.
Tương quan
Tương quan cho thấy mối quan hệ tuyến tính giữa hai mảng giá trị (chuỗi) bất kỳ. Có nhiều phương pháp để tính toán mối tương quan như pearson (mặc định), Speman và 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()
Nó là output như sau -
-0.383712785514
a b c d e
a 1.000000 -0.383713 -0.145368 0.002235 -0.104405
b -0.383713 1.000000 0.125311 -0.372821 0.224908
c -0.145368 0.125311 1.000000 -0.045661 -0.062840
d 0.002235 -0.372821 -0.045661 1.000000 -0.403380
e -0.104405 0.224908 -0.062840 -0.403380 1.000000
Nếu có bất kỳ cột nào không phải số trong DataFrame, thì cột đó sẽ tự động bị loại trừ.
Xếp hạng dữ liệu
Xếp hạng Dữ liệu tạo ra xếp hạng cho từng phần tử trong mảng các phần tử. Trong trường hợp quan hệ, chỉ định thứ hạng trung bình.
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()
Nó là output như sau -
a 1.0
b 3.5
c 2.0
d 3.5
e 5.0
dtype: float64
Xếp hạng tùy chọn nhận một tham số tăng dần theo mặc định là đúng; khi sai, dữ liệu được xếp hạng ngược, với các giá trị lớn hơn được chỉ định một thứ hạng nhỏ hơn.
Xếp hạng hỗ trợ các phương pháp ràng buộc khác nhau, được chỉ định bằng tham số phương thức -
average - xếp hạng trung bình của nhóm bị ràng buộc
min - thứ hạng thấp nhất trong nhóm
max - thứ hạng cao nhất trong nhóm
first - xếp hạng được chỉ định theo thứ tự xuất hiện trong mảng