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