恭喜你

Python 中的探索性数据分析

George Boorman

Curriculum Manager, DataCamp

检查与验证

图书评分的直方图

books["year"] = books["year"].astype(int)
books.dtypes
name       object
author     object
rating    float64
year        int64
genre      object
dtype: object
Python 中的探索性数据分析

聚合

books.groupby("genre").agg(
    mean_rating=("rating", "mean"),
    std_rating=("rating", "std"),
    median_year=("year", "median")
)
|  genre      | mean_rating | std_rating | median_year |
|-------------|-------------|------------|-------------|
|   Childrens |    4.780000 |   0.122370 |      2015.0 |
|     Fiction |    4.570229 |   0.281123 |      2013.0 |
| Non Fiction |    4.598324 |   0.179411 |      2013.0 |
Python 中的探索性数据分析

处理缺失数据

print(salaries.isna().sum())
Working_Year            12
Designation             27
Experience              33
Employment_Status       31
Employee_Location       28
Company_Size            40
Remote_Working_Ratio    24
Salary_USD              60
dtype: int64
Python 中的探索性数据分析

处理缺失数据

  • 删除缺失值

 

  • 用均值、中位数、众数填补

 

  • 按子组填补

 

salaries_dict = salaries.groupby("Experience")["Salary_USD"].median().to_dict()
salaries["Salary_USD"] = salaries["Salary_USD"].fillna(salaries["Experience"].map(salaries_dict))
Python 中的探索性数据分析

分析分类数据

salaries["Job_Category"] = np.select(conditions, 
                                     job_categories, 
                                     default="Other")

按类别统计职位数量的条形图

Python 中的探索性数据分析

应用 lambda 函数

应用 lambda 函数

salaries["std_dev"] = salaries.groupby("Experience")["Salary_USD"].transform(lambda x: x.std())
Python 中的探索性数据分析

处理离群值

sns.boxplot(data=salaries,
            y="Salary_USD")
plt.show()

数据从业者薪资的箱线图:箱体底部为第25百分位,中线为第50百分位,顶部为第75百分位

Python 中的探索性数据分析

时间模式

sns.lineplot(data=divorce, x="marriage_month", y="marriage_duration")
plt.show()

折线图:结婚月份与婚姻持续时间的关系

Python 中的探索性数据分析

相关性

sns.heatmap(divorce.corr(numeric_only=True), annot=True)
plt.show()

离婚数据相关性的热力图

Python 中的探索性数据分析

分布

sns.kdeplot(data=divorce, x="marriage_duration", hue="education_man", cut=0)
plt.show()

婚姻持续时间的 KDE 图,hue 为 education_man,cut=0

Python 中的探索性数据分析

列联表

pd.crosstab(planes["Source"], planes["Destination"],
            values=planes["Price"], aggfunc="median")
Destination  Banglore   Cochin   Delhi  Hyderabad  Kolkata  New Delhi
Source                                                               
Banglore          NaN      NaN  4823.0        NaN      NaN    10976.5
Chennai           NaN      NaN     NaN        NaN   3850.0        NaN
Delhi             NaN  10262.0     NaN        NaN      NaN        NaN
Kolkata        9345.0      NaN     NaN        NaN      NaN        NaN
Mumbai            NaN      NaN     NaN     3342.0      NaN        NaN
Python 中的探索性数据分析

pd.cut()

提供分箱

planes["Price_Category"] = pd.cut(planes["Price"],
                                  labels=labels,
                                  bins=bins)
Python 中的探索性数据分析

数据窥探

每个经停次数的相关系数热力图

Python 中的探索性数据分析

生成假设

sns.barplot(data=planes, x="Airline", y="Duration")
plt.show()

按航空公司比较飞行时长的条形图

Python 中的探索性数据分析

后续步骤

Python 中的探索性数据分析

恭喜!

Python 中的探索性数据分析

Preparing Video For Download...