数据分析 第二章 3.数据可视化

课程资料参考自[1]
导入包和数据并且打印

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
text = pd.read_csv("E:/Python/python操作/Datawhale/datawhale数据分析/关于数据/第二章项目集合/result.csv")
print(text.head())
#    Unnamed: 0  PassengerId  Survived  ...     Fare Cabin Embarked
# 0           0            1         0  ...   7.2500   NaN        S
# 1           1            2         1  ...  71.2833   C85        C
# 2           2            3         1  ...   7.9250   NaN        S
# 3           3            4         1  ...  53.1000  C123        S
# 4           4            5         0  ...   8.0500   NaN        S
#
# [5 rows x 13 columns]

貌似pycharm显示csv文件不全是常规

  1. 可视化展示泰坦尼克号数据集中男女中生存人数分布情况(用柱状图试试)
'''可视化展示泰坦尼克号数据集中男女中生存人数分布情况(用柱状图试试)'''
sex = text.groupby('Sex')['Survived'].sum()
sex.plot.bar()
plt.title('survived_count')
plt.show()

数据分析 第二章 3.数据可视化_第1张图片

关于groupby的介绍,见[2]
groupby就是按xx分组,比如, 将一个数据集按A进行分组, 效果是这样:
数据分析 第二章 3.数据可视化_第2张图片
操作就是data.groupby('A'),这个会返回一个DataFrameGroupBy的东西。这个DataFrameGroupBy主要的功能能是允许你在不额外写循环的情况下, 快速对每一组数据进行操作。
最基本的就是组内计数, 求和, 求均值, 求方差,例如求不同种族内XX年龄的平均值,就是data.groupby('race')['age'].mean(),会得到一个Series
age是连续属性,还可以对离散属性进行操作,比如对不同取值的计数: .value_counts(),类似data.groupby('race')['signs_of_mental_illness'].value_counts()
效果图类似:

A False 29
True 10
B False 523
True 95
......
Name: signs_of_mental_illness, dtype: int64

这时, 组内操作的结果不是单个值, 是一个序列, 可以用.unstack()将它展开。

data.groupby('race')['signs_of_mental_illness'].value_counts().unstack()

效果图类似:
数据分析 第二章 3.数据可视化_第3张图片

感觉这个还不够熟悉,接着查找资料找到了[6]
大佬主要分成了四个部分进行讲解:
第一部分是groupby的作用,第二部分是单类分组,第三类是多类分组,第四类是时间分组。
首先第一部分,groupby的作用是进行数据的分组以及分组后地组内运算

df[](指输出数据的结果属性名称).groupby([df[属性],df[属性])(指分类的属性,数据的限定定语,可以有多个).mean()(对于数据的计算方式——函数名称)

例如print(df["评分"].groupby([df["地区"],df["类型"]]).mean())

第二部分是单类分组,A.groupby("性别")
这个的意思是有一个变量A,数据类型是DataFrame,想要按照【性别】进行分组,得到的结果是一个Groupby对象,还没有进行任何的运算。
数据分析 第二章 3.数据可视化_第4张图片
可以看到直接打印得到的结果是Groupby对象
刚刚也提到了没有任何的运算,如果加上了describe(),就是描述组内数据的基本统计量。

A.groupby("性别").describe().unstack()

数据分析 第二章 3.数据可视化_第5张图片只有数字类型的列数据才会计算统计
示例里面数字类型的数据有两列 【班级】和【身高】
如果不需要【班级】只需要【身高】,就是A.groupby("性别")["身高"].describe().unstack()
数据分析 第二章 3.数据可视化_第6张图片
第三个是多类分组,A.groupby( ["班级","性别"])
数据分析 第二章 3.数据可视化_第7张图片
如多类分组的例子所示,单独用groupby,我们得到的还是一个 Groupby 对象。
关于相关的函数有:
数据分析 第二章 3.数据可视化_第8张图片
还可以一次运用多个函数计算,例如
A.groupby( ["班级","性别"]).agg([np.sum, np.mean, np.std]) # 一次计算了三个

你可能感兴趣的:(小路,python)