爬虫老司机手把手教你如何分析用户数据|Python 数据分析打怪升级之路 day05:数据规范化这样做才规范数据可视化十大图表

Posted 夜斗小神社

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫老司机手把手教你如何分析用户数据|Python 数据分析打怪升级之路 day05:数据规范化这样做才规范数据可视化十大图表相关的知识,希望对你有一定的参考价值。

数据分析打怪升级进度:day05


哈喽,大家好啊,欢迎来到小夜斗的数据分析频道!

大家可以叫我小夜斗:“一枚想要做python领域强者的小萌新”

往期精彩回顾:

【如何3秒钟看出一个人的python实力|Python 数据分析打怪升级之路 day04】:手把手教你如何分析用户数据、数据分析基本概念
【如何3秒钟看出一个人的python实力|Python 数据分析打怪升级之路 day03】:最简介Python基础、Numpy基础、pandas基础 看完后仍然心有余悸

【Python 数据分析打怪升级之路 day02】:行之有效的学习方法、数据挖掘核心步骤

【Python 数据分析打怪升级之路 day01】sklearn进行数据预处理数据: 加载、划分、转换、降维

如果大家和小夜斗一起打卡学完这个数据分析系列,那以后在数

据分析领域遇到问题那岂不是手拿把掐!

看完小夜斗的这篇笔记,你将学会如何进行数据变换、了解常用的可视化工具以及种类大全

怎么样,要不要考虑点赞、关注、收藏一下啊,日后成大佬!

一:数据变换

小夜斗今天从朋友那里得到了一个小道消息:“隔壁老王儿子考了90分”,“隔壁老刘加女儿考了60分”,但是隔壁老王的儿子却被暴揍一顿!

从这里可以看出来,老王和老刘的子女考试的内容不一样、满分不一样,因此成绩不能直接根据高低大小比较,我们需要通过数据变换对数据进行探索和相关性分析!

(一):常见的数据变换方法:

  • 数据平滑:去除噪声,数据离散化(聚类和回归)
  • 数据聚集:将数据进行汇总
  • 数据概化:提高数据特征维度,比如百事可乐可以叫做饮料
  • 数据规范化:将数据转换到某一个区间(Z-score规范化)
  • 属性构造:通过现有属性构造新的属性

(二):频率最高的数据规范方法

Min-max 规范化:将数据映射到[0,1]区间中

data = (原始数据 - 极小值)/ (极大值 - 极小值)

#coding:utf-8

from sklearn import preprocessing
import numpy as np

# 原始数据
x = np.array([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]])
print(x)
# [0,1]规范
std_x = preprocessing.MinMaxScaler()  # 实例化规范对象
std_x_data = std_x.fit_transform(x)  # 将规范化方法应用于x
print(std_x_data)

Z-Score规范化:将数据用相同标准进行比较

data = (原始数据 - 均值)/ 标准差

#coding:utf-8

from sklearn import preprocessing
import numpy as np

# 原始数据
x = np.array([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]])
print(x)
# Z-score规范
std_x = preprocessing.scale(x)  # 直接规范化对象
print(std_x)

二:数据可视化重用图表和工具

我们常用的可视化视图超过 20
种,分别包括:文本表、热力图、地图、符号地图、饼图、水平条、堆叠条、并排条、树状图、圆视图、并排圆、线、双线、面积图、双组合、散点图、直方图、盒须图、甘特图、靶心图、气泡图

  • 折线图:随时间变化趋势
  • 散点图:两个或以上变量的关系
  • 饼图:部分占整体百分比
  • 分别:多个变量分别情况

两款常用商业数据分析工具:Tableau、PowerBI

可视化大屏工具:DataV、FineReport

前端可视化组件:Canvas、SVG、WebGL

Python数据可视化:Matplotlib、Seaborn

三:Python绘制常用图表

(一):matplotlib绘制散点图(scatter plot)

# marker属性:"x" ">" "o"
plt.scatter(x_list,y_list,marker='x')
#coding:utf-8

import matplotlib.pyplot as plt
import random
# 原始数据
x_list = []
y_list = []
for i in range(0, 1000):
    x = random.random()
    y = random.random()
    x_list.append(x)
    y_list.append(y)
# 散点图
plt.scatter(x_list,y_list,marker='x')
# 展现
plt.show()

(二):seaborn绘制散点图

传入的data数据一般为pandas处理后的数据,如代码所示

# 用Seaborn绘制散点图
df = pd.DataFrame('x':x, 'y':y)
sns.jointplot(x="x", y="y", data=df, kind="scatter")
#coding:utf-8

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 数据准备
N = 1000

x = np.random.randn(N)
y = np.random.rand(N)

# 用Seaborn绘制散点图
df = pd.DataFrame('x':x, 'y':y)
sns.jointplot(x="x", y="y", data=df, kind="scatter")

plt.show()


(三):matplotlib绘制折线图

#coding:utf-8


import pandas as pd
import matplotlib.pyplot as plt

# 数据
x = list(range(0,10))
y = list(range(0, 10))
print(x)
print(y)

# 折线图
plt.plot(x,y)
plt.show()


(四):Seaborn绘制折线图(用直线代替)

用Seaborn画出来的图形比上面的折线图多了x、y坐标图标

#coding:utf-8


import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 数据
x = list(range(0,10))
y = list(range(0, 10))
print(x)
print(y)

# 折线图
df = pd.DataFrame('x':x,'y':y)
sns.lineplot(x="x", y="y",data=df)
plt.show()


(五):matplotlib绘制直方图

#coding:utf-8

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 数据
x = np.random.randn(100)
x1 = pd.Series(x)
print(x)
print(x1)

# 折线图
plt.hist(x1)
plt.show()


(六):Seaborn绘制直方图

#coding:utf-8

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 数据
x = np.random.randn(100)
x1 = pd.Series(x)
print(x)
print(x1)

# 折线图,如果kde为False的话没有线性图只有直方图
sns.distplot(x1, kde=True)
plt.show()


(七):matplotlib绘制条形图

#coding:utf-8

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 数据
x = ['S1','S2','S3','S4','S5']
y = [8, 14, 10, 6, 2]


# 直方图
plt.bar(x,y)
plt.show()


(八):Searborn绘制条形图

#coding:utf-8

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 数据
x = ['S1','S2','S3','S4','S5']
y = [8, 14, 10, 6, 2]


# 直方图
sns.barplot(x, y)
plt.show()


(九):matplotlib绘制箱线图

箱线图,又称盒式图,它是在 1977 年提出的,由五个数值点组成:最大值 (max)、最小值 (min)、中位数 (median) 和上下四分位数 (Q3, Q1)。它可以帮我们分析出数据的差异性、离散程度和异常值等

#coding:utf-8

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 数据
data = np.random.normal(size=(10, 4))
labels = ['A', 'B', 'C', 'D']
# 箱线图
plt.boxplot(data, labels=labels)

plt.show()


(十):Seaborn绘制箱线图

#coding:utf-8

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 数据
data = np.random.normal(size=(10, 4))
labels = ['A', 'B', 'C', 'D']
# 箱线图
df = pd.DataFrame(data, columns=labels)
sns.boxplot(data=df)
plt.show()


好啦,本期知识分享就到这里辽,以上内容来自清华一名很牛逼的老师的笔记,小夜斗自己学习过程当中总结精华分享给大家!

关注夜斗小神社,Python爬虫、数据分析不迷路!

  • 在这个星球上,你很重要,请珍惜你的珍贵! ~~~夜斗小神社

以上是关于爬虫老司机手把手教你如何分析用户数据|Python 数据分析打怪升级之路 day05:数据规范化这样做才规范数据可视化十大图表的主要内容,如果未能解决你的问题,请参考以下文章

爬虫老司机手把手教你如何分析用户数据|Python 数据分析打怪升级之路 day05:数据规范化这样做才规范数据可视化十大图表

手把手教你利用Python网络爬虫获取APP推广信息

python爬虫技术如何挣钱?手把手教你如何用Python做副业月入30000+!

python爬虫技术如何挣钱?手把手教你如何用Python做副业月入30000+!

如何3秒钟看出一个人的python实力|Python 数据分析打怪升级之路 day04:手把手教你如何分析用户数据数据分析基本概念

爬虫实战手把手教你用Python爬取某图网4000张图片