4-对华尔街见闻网中行情的数据进行处理【简单的预处理+出图】

使用:27-爬取华尔街见闻网中行情的数据【股票数据的一种】

(https://my.oschina.net/pansy0425/blog/3032634),对爬取到的数据进行简单的清洗,去噪,进行数据预处理,然后简单的出一个柱状图

(1)因为爬虫得到的数据很杂(缺失值,重复等),所以必须要预处理!!!

(2)因为本人爬取的数据只是某一时刻的,不涉及到时间序列,所以若是想看时间序列的图,下次爬取别的数据,我再分析!!!

【做数据分析,强推:jupyter】

----------------------------华丽的分割线【进入学习模式】-------------------------------

#导入数据,选取数据做分析
import pandas as pd
import numpy as np 
data=pd.read_csv(r'C:\Users\Administrator\wallstreet.csv',encoding='utf-8')  #读取csv数据
data=data[['资产名(英)','最新价格','涨跌额','涨跌幅','日区间1','日区间2','总区间1','总区间2']]
data=data.rename(columns={'资产名(英)':'item_cname','最新价格':'last_p','涨跌额':'zde','涨跌幅':'rate','日区间1':'day_interval1','日区间2':'day_interval2','总区间1':'all_interval1','总区间2':'all_interval2'})
data.head()                 
#data.describe()
#data.info()
#缺失值的处理【爬虫和数据中包含缺失值,需要对缺失值进行处理】
(data.isnull()).sum()  #没有缺失值   【本文数据,这边的结果为0】
#若有缺失值【假设有缺失值】
#data=data.dropna()

#重复值的处理【爬虫中的数据会出现大量重复值,需要对重复值进行处理】
(data.duplicated()).sum()  #有6个重复值  【本文数据,这边的结果为5】
#(data.duplicated(subset=['item_cname','last_p','zde','rate','day_interval1','day_interval2','all_interval1','all_interval2'])).sum()  #根据这四个变量来查找重复值
                           #结果也是6   【本文数据,这边的结果为5】
data=data.drop_duplicates() #去除重复值
#data=data.drop_duplicates(subset=['item_cname','last_p','zde','rate','day_interval1','day_interval2','all_interval1','all_interval2'])  根据subset中的值去除标签
#【本文两种去重复值的方法都可以使用,具体问题具体分析】
#针对本文数据进行相应的数据分析
#(1)将zde乘以100,并且将其改名为zde%
#(2)将rate变为小数,并且改名rate%
#(3)计算day_interval和all_intervall
#(1)将zde乘以100,并且将其改名为zde%
data=data.assign(zde=np.round(data.zde.map(lambda x:x*100),2))
data=data.rename(columns={'zde':'zde%'})
data.head()
#(2)将rate变为小数,并且改名rate%
data=data.assign(rate=data.rate.str.replace('%','').astype(np.float))  #注:可以自动识别正负,若为正,则去除+,若为负,保留-
data=data.rename(columns={'rate':'rate%'})
data.head()
#(3)计算day_interval和all_intervall
data=data.assign(day_interval=np.round(data.day_interval2-data.day_interval1,2))
data=data.assign(day_interval100=np.round((data.day_interval2-data.day_interval1).map(lambda x:x*100),2))  #可将其扩大100
data=data.assign(all_interval=np.round(data.all_interval2-data.all_interval1,2))
data.head()
#再一次挑选合适的数据
#data=data[['item_cname','last_p','zde%','rate%','day_interval','all_interval']]  #方法一
data=data.drop(['day_interval1','day_interval2','all_interval1','all_interval2','day_interval100'],axis=1)  #方法二
data.head()
#查看数据
data.describe()
import matplotlib.pyplot as plt  #画图
%matplotlib inline 
##简单的数据可视化 
#对cjdanjia的显示,对于不同的区间的显示【数据的离散化分析】  (就两句话,见红色)
#data.day_interval.max()  #2317.910000
#data.day_interval.min()  #0
#看下0-10,10-50,50-200,200-1500,1500-2500
bins=[0,10,50,200,1500,2500]
#pd.cut(data.day_interval,bins)  #将每个day_interval划分区间
#pd.cut(data.day_interval,bins).value_counts()  #day_interval的统计
pd.cut(data.day_interval,bins).value_counts().plot.bar(rot=0)  #rot=0为了让横坐标的显示是水平的

------------------------------------------华丽的分割线【进入学习模式】-------------------------------------------

注:简单的数据分析,其实就是想让自己熟悉DataFrame格式的数据~~~

 

转载于:https://my.oschina.net/pansy0425/blog/3032670

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值