import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib
%matplotlib inline
%config InlineBackend.figure_format = ‘retina’
Using matplotlib backend: MacOSX
## 數據讀取
數據來源於mysql官網測試數據,這裏抽取了salary表10w條數據:https://dev.mysql.com/doc/employee/en/
```python
salary_df = pd.read_csv('./employees_salaries_10w.csv')
salary = salary_df['salary']
salary.values.sort()
# 數據分佈情況
salary.plot(figsize=(10,5))
plt.show()
# 數據統計
salary.describe()
count 100000.00000
mean 63973.80848
std 17063.67281
min 38812.00000
25% 50521.00000
50% 61263.00000
75% 74470.25000
max 145732.00000
Name: salary, dtype: float64
集中趨勢
print(u'算術平均數: ', salary.mean())
print(u'中位數: ', salary.median())
print(u'衆數: ', salary.mode())
print(u'衆數: ', salary.mode())
print(u'最小值', salary.min())
print(u'最大值', salary.max())
算術平均數: 63973.80848
中位數: 61263.0
衆數: 0 40000
dtype: int64
衆數: 0 40000
dtype: int64
最小值 38812
最大值 145732
# 分位數
print (u'第一分位數: ', salary.quantile(q=0.25))
print (u'第二分位數: ', salary.quantile(q=0.50))
print (u'第三分位數: ', salary.quantile(q=0.75))
第一分位數: 50521.0
第二分位數: 61263.0
第三分位數: 74470.25
離中趨勢
print(u'方差: ', salary.var())
print(u'標準差: ', salary.std())
print(u'四分位差: ', salary.quantile(q=0.75)-salary.quantile(q=0.25))
print(u'離散係數=標準差/均值: ', salary.std()/salary.mean())
方差: 291168929.77595794
標準差: 17063.672810270302
四分位差: 23949.25
離散係數=標準差/均值: 0.26672904452147606
# hist
plt.hist(salary,100)
plt.show()
print (u'偏態係數: ', salary.skew())
print (u'峯態係數: ', salary.kurt())
偏態係數: 0.7835741996432202
峯態係數: 0.31645000859698413