数据分析 + 可视化(1)

数据分析主要掌握的几个库:
numpy, pandas, seaborn, matplotlib

数据分析流程

1.查看数据

常用函数:
df.head()
df.info()
df.describe()

通过这几个函数初步了解数据长什么样、有无缺失值、基本的统计信息等

2.处理缺失数据

常用函数:
df.isna() #查看数据是否有缺失值
df.isnull() #查看数据空值
df.duplicated() #查看重复数据

df.fillna() #对数据缺失值填充
注意:
(1)df.fillna()函数可以指定填充某一列的缺失值

   df['col_name'].fillna(values, inplace = True)

(2)填充的value带有索引,需要对原数据设置对应index
填充完后reset_index()

titanic_df.set_index('Sex', inplace=True)
titanic_df
# 使用fillna填充缺失值,根据索引值填充
titanic_df.Age.fillna(age_median2, inplace=True)
# 重置索引,即取消Sex索引
titanic_df.reset_index(inplace=True)

3.数据变换、分组聚合

常用函数:
df.groupby(by = , sort=True).agg(func)
df.groupby(by = , sort=True).func
df.groupby(by = , sort=True)[‘col_names’].agg(func)
df.groupby(by = , sort=True)[‘col_names’].func

df.sort_index() #按照索引排序
df.sort_values() #按照值排序
注意:sort_values()可以同时对指定的多列数据进行排序

titanic_df.sort_values(by = ['Pclass', 'Age'], ascending=[True, False],inplace=True)

4.数据可视化

(1)pandas自带的可视化函数
df.plot(kind= )
kind: ‘box’ #箱线图
‘line’ # 折线图
‘pie’ # 饼图
‘bar’ #柱状图
‘hist’ #直方图

(2) seaborns
常用绘图函数:


# 散点图,分析两个变量的关系
sns.lmplot(x="total_bill", y="tip", data=tips) #+拟合
sns.jointplot(x="x", y="y", data=df)

#柱状图,hue指定分类类名
sns.barplot(x="sex", y="survived", hue="class", data=titanic)

#分类箱线图
sns.boxplot(x="day", y="total_bill", hue="time", data=tips)

#灰度图
sns.distplot(x, kde=True, bins=20) #bins控制分桶数目

#提琴图,是箱线图 + KDE(密度分布)
sns.violinplot(x="total_bill", y="day", hue="time", data=tips)

#对应pandas中的value_counts
sns.countplot(x="deck", data=titanic) 

#点图
sns.pointplot(x="sex", y="survived", hue="class", data=titanic)

#分类子图,x 和 y 可指定多组数据
sns.factorplot(x="day", y="total_bill", hue="smoker", col="time", data=tips, kind="swarm")

#描绘数据的两两之间的关系
sns.pairplot(iris);

重点:
多分类绘图函数:
sns.FacetGrid()

扫描二维码关注公众号,回复: 8685505 查看本文章
sns.FacetGrid(data = titanic_df, row='Embarked', col='Sex',aspect=1.5) \
   .map(sns.pointplot, 'Pclass', 'Survived', 'Sex', hue_order=['male', 'female'],  palette='deep', ci=None)

row, col, hue : strings
定义数据子集的变量,这些变量将在网格的不同方面绘制

map(func,* args,** kwargs)
将绘图功能应用于每个方面的数据子集

{row,col,hue}_order : lists, optional

对所给命令的级别进行排序。默认情况下,这将是数据中显示的级别,如果变量是pandas分类,则是类别顺序。

补充:
1.pivot_table函数
透视表,起作用于Groupby + agg 相当

titanic_df.pivot_table(values='Survived',index='AgeBand', columns=['Sex', 'Pclass'], aggfunc=np.mean)
发布了29 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/c2250645962/article/details/96738644