python买卖股票,python股票数据分析可视化

  

  阅读这篇文章大约需要3分钟。   

  

  轻松学Python数据分析4-数据可视化图表   

  

  

摘 要

  

  

   轻松学Python数据分析4-数据可视化图表   

  

  不要把一生献给平庸和庸俗。工作应该是快乐的。不喜欢就放下。没关系。经过2020-2021这几年,OF越来越希望把时间花在自己喜欢的事情上,比如分享这些可能不起眼的数据分析知识。即使读者能被我们的进取态度所激励或学到一个知识点,也会感到满意。   

  

  言归正传,经过01-03这三篇文章的积累,相信你对Python数据分析有了一定的了解。今天OF介绍易学Python数据分析系列的第四部分:数据可视化图表(1读取数据集-2数据处理-3数据可视化图表)。   

  

  轻松学Python数据分析4-数据可视化图表   

  

  主要内容:Excel办公自动化与数据分析适合人群:办公人员/Python初学者/对数据分析感兴趣的人。准备内容:Anaconda-Spyder,pandas,seaborn,matplotlib.pyplot库如果不能安装库可以参考下面的教程:   

  

  如何安装Python库   

  

  

一、读取数据集

  

  

  OF已在03篇   

介绍过了如何下载、读取数据集(文末有01-03篇的链接),就不再赘述。先读取一个目标数据集,以下例子的数据集是在Kaggle下载的(澳大利亚的房产数据),如果需要该数据集也可以私信我。

import pandas as pdhouse = pd.read_csv(r'D:\XX\housetest.csv')

拿到这样一个数据集,我们先看看里面有些什么样的数据(把我们要分析的数据列展现出来):

轻松学Python数据分析4-数据可视化图表

二、数据处理

承接03篇的数据处理方式,我们先观察地下室总面积列的数据。

import pandas as pdhouse = pd.read_csv(r'D:\XX\housetest.csv')print(house["TotalBsmtSF"].isnull().sum())

输出结果:

1

我们可以看到,该列有一个数据是空值,处理缺失值可以分为两类:删除缺失值和缺失值插补。我们以平均数插补为例:

import pandas as pdhouse = pd.read_csv(r'D:\XX\housetest.csv')#将house数据集中"地下室总面积"列数组赋给price_nullprice_null = pd.isnull(house["TotalBsmtSF"])    #将house数据集中"地下室总面积"不为空值的数组赋给good_pricegood_price = house[price_null == False]["TotalBsmtSF"]    #计算good_price的平均值mean_price = good_price.mean() #补充所有缺失值以mean_price这个数值      house.loc[price_null == True, "TotalBsmtSF"] = mean_price     

三、读取可视化图表

经过了数据处理,我们可以开始对数据进行分析了。举个例子,想要统计各种HouseStyle房子的数量,我们可以采用seaborn的barplot。(seaborn教程:https://seaborn.pydata.org/examples/index.html)

知识点1:完整的数据分析步骤(1读取数据集->2数据处理->3可视化图表呈现)

import pandas as pdimport seaborn as snsimport matplotlib.pyplot as plt#1 读取数据集house = pd.read_csv(r'D:\XX\housetest.csv')#2 数据处理#将house数据集中"地下室总面积"列数组赋给price_nullprice_null = pd.isnull(house["TotalBsmtSF"])    #将house数据集中"地下室总面积"不为空值的数组赋给good_pricegood_price = house[price_null == False]["TotalBsmtSF"]    #计算good_price的平均值mean_price = good_price.mean()       #补充所有缺失值以mean_price这个数值house.loc[price_null == True, "TotalBsmtSF"] = mean_price     #3 可视化图表df = house.copy()#统计各种房子样式的数量并按降序排序house_count = df.groupby('HouseStyle')['TotalBsmtSF'].count().sort_values(ascending=False).reset_index()sns.barplot(x="HouseStyle", y="TotalBsmtSF", data=house_count)plt.show()

输出结果:

轻松学Python数据分析4-数据可视化图表

上述这个例子为大家快速简单地呈现了可视化的效果,接下来OF要通过这个数据集和seaborn库,来呈现一些常用的图表。

轻松学Python数据分析4-数据可视化图表

知识点2:柱形图countplot/barplot

1)countplot比较简单,计数并画成柱状图。

import pandas as pdimport seaborn as snsimport matplotlib.pyplot as plthouse = pd.read_csv(r'D:\XX\housetest.csv')   # 建立matplotlib图表f, ax1 = plt.subplots(1, 1, figsize=(10, 6), sharex=True)# 生成柱形图x1 = house["HouseStyle"]sns.countplot(x=x1, ax=ax1, palette="Greens_d")# 展现图表plt.show()

输出结果:

轻松学Python数据分析4-数据可视化图表

2)barplot,呈现两列数据的关系,这里有个要注意的,因为x,y轴设置了中文字体显示,所以需要加两行代码,否则x,y轴的标题就不显示了。

plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签plt.rcParams['axes.unicode_minus']=False   #这两行需要手动设置

完整代码如下:

import pandas as pdimport seaborn as snsimport matplotlib.pyplot as plthouse = pd.read_csv(r'D:\XX\housetest.csv')#将house数据集中"地下室总面积"列数组赋给price_nullprice_null = pd.isnull(house["TotalBsmtSF"])    #将house数据集中"地下室总面积"不为空值的数组赋给good_pricegood_price = house[price_null == False]["TotalBsmtSF"]    #计算good_price的平均值mean_price = good_price.mean()       #补充所有缺失值以mean_price这个数值house.loc[price_null == True, "TotalBsmtSF"] = mean_price     # 建立matplotlib图表f, ax1 = plt.subplots(1, 1, figsize=(12, 7), sharex=True)plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签plt.rcParams['axes.unicode_minus']=False   #这两行需要手动设置# 生成柱形图x1 = house["HouseStyle"]y1 = house["TotalBsmtSF"]sns.barplot(x=x1, y=y1, ax=ax1, data=house)ax1.set_title('HouseStyle各户型地下室面积情况', fontsize=20)ax1.set_xlabel("户型")ax1.set_ylabel("地下室面积")# 展现图表plt.show()

输出结果:

轻松学Python数据分析4-数据可视化图表

看了上图,大家会看到黑色的一条柱子,这条柱子指的是y轴(地下室总面积)的范围,可能数据呈现的并不直观,那么我们用boxplot更好些。

知识点3:箱形图,它能显示出一组数据的 最大值、最小值、中位数及上下四分位数。

轻松学Python数据分析4-数据可视化图表

代码,也比较简单,直接将柱形图代码中的sns.barplot,改为sns.boxplot。

输出结果:

轻松学Python数据分析4-数据可视化图表

如果需要再增加一个区域维度,呈现各区域各户型的地下室面积情况,我们需要使用hue属性。

import pandas as pdimport seaborn as snsimport matplotlib.pyplot as plthouse = pd.read_csv(r'D:\Mechtouch\Pyproject\historypro\datadiagram\housetest.csv')#将house数据集中"地下室总面积"列数组赋给price_nullprice_null = pd.isnull(house["TotalBsmtSF"])    #将house数据集中"地下室总面积"不为空值的数组赋给good_pricegood_price = house[price_null == False]["TotalBsmtSF"]    #计算good_price的平均值mean_price = good_price.mean()       #补充所有缺失值以mean_price这个数值house.loc[price_null == True, "TotalBsmtSF"] = mean_price     # 建立matplotlib图表f, ax1 = plt.subplots(1, 1, figsize=(12, 7), sharex=True)plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签plt.rcParams['axes.unicode_minus']=False   #这两行需要手动设置# 生成柱形图x1 = house["HouseStyle"]y1 = house["TotalBsmtSF"]hue1 = house["MSZoning"]sns.boxplot(x=x1, y=y1, ax=ax1, hue=hue1, data=house)ax1.set_title('HouseStyle各户型地下室面积情况', fontsize=20)ax1.set_xlabel("户型")ax1.set_ylabel("地下室面积")# 展现图表sns.despine(offset=10, trim=True)

输出结果:

轻松学Python数据分析4-数据可视化图表

知识点4:直方图和密度图的集合体、线性回归图

如果我们想把几张图一起显示(横向或纵向),在建立matplotlib时,把参数调整成对应数量

#纵向数量改第一个参数,横向数量改第二个参数f, [ax1, ax2] = plt.subplots(1, 2, figsize=(15, 5))

完整代码如下:

import pandas as pdimport seaborn as snsimport matplotlib.pyplot as plthouse = pd.read_csv(r'D:\XX\housetest.csv')columns = ['LotArea', 'TotalBsmtSF']df = pd.DataFrame(house, columns=columns)# 建立matplotlib图表f, [ax1, ax2] = plt.subplots(1, 2, figsize=(15, 5))# 建筑面积的分布情况sns.distplot(df['LotArea'], bins=20, ax=ax1, color='r')sns.kdeplot(df['LotArea'], shade=True, ax=ax1)# 各建筑面积和地下室面积的关系sns.regplot(x='LotArea', y='TotalBsmtSF', data=df, ax=ax2)plt.show()

输出结果:

轻松学Python数据分析4-数据可视化图表

结 语

今天,OF简要介绍了制作数据可视化图表的流程和几种图表的作法,在第5篇关于项目实战的文章中我们将实战一些小项目。OF主要为大家介绍最完整、最简单、最实用的方法来学习办公自动化和数据分析,用Pandas对Excel的数据处理已经足够了。预计还有最后一期展现一个完整的项目实战,尽情期待!

1、Pandas的数据结构,即基础原理

轻松学Python数据分析1-最简单实用的Pandas讲解

2、数据读取和生成

轻松学Python数据分析2-Excel读取和生成

3、Pandas的数据处理

轻松学Python数据分析3-数据处理

4、数据可视化图表(本篇文章)

5、项目实战

  • 若有读者对选材和内容有任何建议,请随时评论或私信我,只要是好的建议,OF一定不会辜负大家,会有惊喜送上。
  • 若学员对知识点有疑问或想学习更有用的知识,也请随时评论或私信我,请相信OF的诚意,一定会努力帮助大家发现-解决问题,提高自身的核心竞争力。
轻松学Python数据分析4-数据可视化图表

相关文章