Python Pandas - ฟังก์ชันทางสถิติ

วิธีการทางสถิติช่วยในการทำความเข้าใจและวิเคราะห์พฤติกรรมของข้อมูล ตอนนี้เราจะเรียนรู้ฟังก์ชันทางสถิติบางอย่างซึ่งเราสามารถนำไปใช้กับวัตถุ Pandas ได้

Percent_change

Series, 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()

มัน output มีดังนี้ -

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)

มัน output มีดังนี้ -

-0.12978405324

วิธีความแปรปรวนเมื่อใช้กับ 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()

มัน output มีดังนี้ -

-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 - สังเกตไฟล์ cov ระหว่าง a และ b คอลัมน์ในคำสั่งแรกและค่าที่เหมือนกันคือค่าที่ส่งคืนโดย cov บน DataFrame

สหสัมพันธ์

สหสัมพันธ์แสดงความสัมพันธ์เชิงเส้นระหว่างอาร์เรย์สองค่า (อนุกรม) มีหลายวิธีในการคำนวณความสัมพันธ์เช่นเพียร์สัน (ค่าเริ่มต้น) สเปียร์แมนและเคนดอล

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()

มัน output มีดังนี้ -

-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

หากคอลัมน์ที่ไม่ใช่ตัวเลขมีอยู่ใน 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()

มัน output มีดังนี้ -

a  1.0
b  3.5
c  2.0
d  3.5
e  5.0
dtype: float64

อันดับเป็นทางเลือกที่จะใช้พารามิเตอร์จากน้อยไปมากซึ่งโดยค่าเริ่มต้นจะเป็นจริง เมื่อเป็นเท็จข้อมูลจะถูกจัดลำดับแบบย้อนกลับโดยค่าที่มากกว่าจะกำหนดอันดับที่น้อยกว่า

อันดับรองรับวิธีการทำลายไทด์ที่แตกต่างกันซึ่งระบุด้วยพารามิเตอร์วิธีการ -

  • average - อันดับเฉลี่ยของกลุ่มที่ผูก

  • min - อันดับต่ำสุดในกลุ่ม

  • max - อันดับสูงสุดในกลุ่ม

  • first - อันดับที่กำหนดตามลำดับที่ปรากฏในอาร์เรย์