Pandas 描述性統(tǒng)計操作實例
DataFrame用在大量的計算描述性信息統(tǒng)計和其他相關(guān)操作。其中大多數(shù)是聚合,例如sum(),mean(),但其中一些聚合(例如sumsum())會產(chǎn)生相同大小的對象。一般而言,這些方法采用軸參數(shù),就像ndarray。{sum,std,...}一樣,但是可以通過名稱或整數(shù)指定軸 DataFrame ? 索引 (axis=0, default), 列 (axis=1)
import pandas as pd import numpy as np # 創(chuàng)建一個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]) } # 創(chuàng)建一個DataFrame df = pd.DataFrame(d) print(df)
運行結(jié)果:
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 #創(chuàng)建一個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]) } #創(chuàng)建一個DataFrame df = pd.DataFrame(d) print(df.sum())
運行結(jié)果:
Age 382 Name TomJamesRickyVinSteveSmithJackLeeDavidGasperBe... Rating 44.92 dtype: object
每個單獨的列都添加了字符串
此語法將輸出以下內(nèi)容。
import pandas as pd import numpy as np # 創(chuàng)建一個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]) } #創(chuàng)建一個DataFrame df = pd.DataFrame(d) print(df.sum(1))
運行結(jié)果:
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 # 創(chuàng)建一個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]) } #創(chuàng)建一個DataFrame df = pd.DataFrame(d) print(df.mean())
運行結(jié)果:
Age 31.833333 Rating 3.743333 dtype: float64
返回數(shù)值列的Bressel標準偏差。
import pandas as pd import numpy as np # 創(chuàng)建一個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]) } #創(chuàng)建一個DataFrame df = pd.DataFrame(d) print(df.std())
運行結(jié)果:
Age 9.232682 Rating 0.661628 dtype: float64
現(xiàn)在我們來了解Python Pandas中描述性統(tǒng)計信息下的功能。下表列出了重要功能:
編號 | 方法 | 描述 |
1 | count() | 非空數(shù) |
2 | sum() | 總數(shù) |
3 | mean() | 平均數(shù) |
4 | median() | 中位數(shù) |
5 | mode() | 模式 |
6 | std() | 標準差 |
7 | min() | 最低值 |
8 | max() | 最大值 |
9 | abs() | 絕對值 |
10 | prod() | 乘積 |
11 | cumsum() | 累加 |
12 | cumprod() | 累乘 |
import pandas as pd import numpy as np # 創(chuàng)建一個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]) } #創(chuàng)建一個DataFrame df = pd.DataFrame(d) print(df.describe())
運行結(jié)果:
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
此函數(shù)提供平均值,std和IQR值。并且,函數(shù)不包括字符列和有關(guān)數(shù)字列的給定摘要?!?include”是用于傳遞有關(guān)匯總時需要考慮哪些列的必要信息的參數(shù)。取值列表;默認情況下為“數(shù)字”。
object ? 匯總字符串列number ? 匯總數(shù)字列all ? 總結(jié)所有列在一起(不應(yīng)該把它作為一個列表值)下面我們在程序中使用以下語句并執(zhí)行并輸出:
import pandas as pd import numpy as np # 創(chuàng)建一個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]) } #創(chuàng)建一個DataFrame df = pd.DataFrame(d) print(df.describe(include=['object']))
運行結(jié)果:
Name count 12 unique 12 top Ricky freq 1
下面我們在程序中使用以下語句并執(zhí)行并輸出:
import pandas as pd import numpy as np # 創(chuàng)建一個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]) } #創(chuàng)建一個DataFrame df = pd.DataFrame(d) print(df. describe(include='all'))
運行結(jié)果:
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