Python Pandas - สถิติเชิงพรรณนา

วิธีการจำนวนมากจะคำนวณสถิติเชิงพรรณนาโดยรวมและการดำเนินการอื่น ๆ ที่เกี่ยวข้องบน DataFrame สิ่งเหล่านี้ส่วนใหญ่เป็นการรวมตัวเช่นsum(), mean(), แต่บางส่วนเช่น sumsum()ผลิตวัตถุที่มีขนาดเท่ากัน โดยทั่วไปวิธีการเหล่านี้ใช้เวลาaxisอาร์กิวเมนต์เช่นเดียวกับndarray {sum, std, ... }แต่แกนสามารถระบุได้ด้วยชื่อหรือจำนวนเต็ม

  • DataFrame - "ดัชนี" (แกน = 0, ค่าเริ่มต้น), "คอลัมน์" (แกน = 1)

ให้เราสร้าง DataFrame และใช้วัตถุนี้ตลอดบทนี้สำหรับการดำเนินการทั้งหมด

ตัวอย่าง

import pandas as pd
import numpy as np

#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','Andres']),
   'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
   'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
}

#Create a DataFrame
df = pd.DataFrame(d)
print df

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

Age  Name   Rating
0   25   Tom     4.23
1   26   James   3.24
2   25   Ricky   3.98
3   23   Vin     2.56
4   30   Steve   3.20
5   29   Smith   4.60
6   23   Jack    3.80
7   34   Lee     3.78
8   40   David   2.98
9   30   Gasper  4.80
10  51   Betina  4.10
11  46   Andres  3.65

ผลรวม ()

ส่งคืนผลรวมของค่าสำหรับแกนที่ร้องขอ ตามค่าเริ่มต้นแกนคือดัชนี (แกน = 0)

import pandas as pd
import numpy as np
 
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','Andres']),
   'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
   'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
}

#Create a DataFrame
df = pd.DataFrame(d)
print df.sum()

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

Age                                                    382
Name     TomJamesRickyVinSteveSmithJackLeeDavidGasperBe...
Rating                                               44.92
dtype: object

แต่ละคอลัมน์จะถูกเพิ่มทีละคอลัมน์ (ต่อท้ายสตริง)

แกน = 1

ไวยากรณ์นี้จะให้ผลลัพธ์ดังที่แสดงด้านล่าง

import pandas as pd
import numpy as np
 
#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','Andres']),
   'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
   'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
}
 
#Create a DataFrame
df = pd.DataFrame(d)
print df.sum(1)

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

0    29.23
1    29.24
2    28.98
3    25.56
4    33.20
5    33.60
6    26.80
7    37.78
8    42.98
9    34.80
10   55.10
11   49.65
dtype: float64

ค่าเฉลี่ย ()

ส่งคืนค่าเฉลี่ย

import pandas as pd
import numpy as np

#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','Andres']),
   'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
   'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
}

#Create a DataFrame
df = pd.DataFrame(d)
print df.mean()

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

Age       31.833333
Rating     3.743333
dtype: float64

มาตรฐาน ()

ส่งกลับค่าเบี่ยงเบนมาตรฐาน Bressel ของคอลัมน์ตัวเลข

import pandas as pd
import numpy as np

#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','Andres']),
   'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
   'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
}

#Create a DataFrame
df = pd.DataFrame(d)
print df.std()

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

Age       9.232682
Rating    0.661628
dtype: float64

ฟังก์ชั่นและคำอธิบาย

ตอนนี้ให้เราเข้าใจฟังก์ชันภายใต้สถิติเชิงพรรณนาใน Python Pandas ตารางต่อไปนี้แสดงรายการฟังก์ชันที่สำคัญ -

ซีเนียร์ ฟังก์ชัน คำอธิบาย
1 นับ() จำนวนการสังเกตที่ไม่เป็นค่าว่าง
2 ผลรวม () ผลรวมของค่า
3 ค่าเฉลี่ย () ค่าเฉลี่ยของค่า
4 ค่ามัธยฐาน () ค่ามัธยฐานของค่า
5 โหมด() โหมดของค่า
6 มาตรฐาน () ค่าเบี่ยงเบนมาตรฐานของค่า
7 นาที() มูลค่าขั้นต่ำ
8 สูงสุด () ค่าสูงสุด
9 เอบีเอส () ค่าสัมบูรณ์
10 แยง() ผลิตภัณฑ์แห่งคุณค่า
11 cumsum () ผลรวมสะสม
12 cumprod () สินค้าสะสม

Note- เนื่องจาก DataFrame เป็นโครงสร้างข้อมูลที่แตกต่างกัน การดำเนินการทั่วไปใช้ไม่ได้กับทุกฟังก์ชัน

  • ฟังก์ชั่นเช่น sum(), cumsum()ทำงานกับองค์ประกอบข้อมูลสตริงทั้งตัวเลขและอักขระ (หรือ) โดยไม่มีข้อผิดพลาดใด ๆ แม้ว่าn โดยทั่วไปจะไม่ใช้การรวมอักขระโดยทั่วไปฟังก์ชันเหล่านี้จะไม่ทำให้เกิดข้อยกเว้นใด ๆ

  • ฟังก์ชั่นเช่น abs(), cumprod() โยนข้อยกเว้นเมื่อ DataFrame มีข้อมูลอักขระหรือสตริงเนื่องจากไม่สามารถดำเนินการดังกล่าวได้

การสรุปข้อมูล

describe() ฟังก์ชันคำนวณสรุปสถิติที่เกี่ยวข้องกับคอลัมน์ DataFrame

import pandas as pd
import numpy as np

#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','Andres']),
   'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
   'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
}

#Create a DataFrame
df = pd.DataFrame(d)
print df.describe()

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

Age         Rating
count    12.000000      12.000000
mean     31.833333       3.743333
std       9.232682       0.661628
min      23.000000       2.560000
25%      25.000000       3.230000
50%      29.500000       3.790000
75%      35.500000       4.132500
max      51.000000       4.800000

ฟังก์ชันนี้ให้ไฟล์ mean, std และ IQRค่า และฟังก์ชันจะไม่รวมคอลัมน์อักขระและให้สรุปเกี่ยวกับคอลัมน์ตัวเลข'include'คืออาร์กิวเมนต์ที่ใช้ในการส่งผ่านข้อมูลที่จำเป็นเกี่ยวกับคอลัมน์ที่ต้องพิจารณาเพื่อสรุป รับรายการค่า โดยค่าเริ่มต้นคือ "number"

  • object - สรุปคอลัมน์ String
  • number - สรุปคอลัมน์ตัวเลข
  • all - สรุปคอลัมน์ทั้งหมดเข้าด้วยกัน (ไม่ควรส่งเป็นค่ารายการ)

ตอนนี้ใช้คำสั่งต่อไปนี้ในโปรแกรมและตรวจสอบผลลัพธ์ -

import pandas as pd
import numpy as np

#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','Andres']),
   'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
   'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
}

#Create a DataFrame
df = pd.DataFrame(d)
print df.describe(include=['object'])

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

Name
count       12
unique      12
top      Ricky
freq         1

ตอนนี้ใช้คำสั่งต่อไปนี้และตรวจสอบผลลัพธ์ -

import pandas as pd
import numpy as np

#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack',
   'Lee','David','Gasper','Betina','Andres']),
   'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
   'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
}

#Create a DataFrame
df = pd.DataFrame(d)
print df. describe(include='all')

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

Age          Name       Rating
count   12.000000        12    12.000000
unique        NaN        12          NaN
top           NaN     Ricky          NaN
freq          NaN         1          NaN
mean    31.833333       NaN     3.743333
std      9.232682       NaN     0.661628
min     23.000000       NaN     2.560000
25%     25.000000       NaN     3.230000
50%     29.500000       NaN     3.790000
75%     35.500000       NaN     4.132500
max     51.000000       NaN     4.800000