Seaborn 练习

'''
如上数据有问题如下:
• 索引无序
• 单价中包含各种各样单位
所以需求如下:
• 读取数据 重置索引
• 将单价列取出 整数 或 浮点数 并转为可计算类型
• 将评分列进行降序
• 直观体现评分数据主要分布在哪个区间
• 直观体现单价与评分的分布
• 取出评分前100条数据 直观体现不同出版社的出书次数
'''

#导入模块
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import re


#导入数据 并预览数据
db_df = pd.read_excel('file_folder/豆瓣读书.xlsx')
db_df.info()
db_df.head(30)

#索引无序 

db_df.reset_index(drop=True,inplace=True)
db_df.head(30)

# 索引无序 单价中包含各种各样单位 有带单位的,有不带单位的,有台币的,还有其他货币的 
# 取出里面的浮点数字
# 自定义函数
def get_price(x):
    regex = re.compile(r'[0-9]*\.?[0-9]+').findall(x)
    return float(regex[0])
db_df['单价'] = db_df['单价'].apply(get_price)

这里偷懒没有用round再处理成两位小数

# 将评分列进行降序
db_df.sort_values('评分',ascending=False)

# 直观体现评分数据主要分布在哪个区间
# 单一变量主要就是通过直方图来绘制。在seaborn中直方图的绘制采用的是distplot
sns.distplot(db_df['评分'],rug = True)
plt.show()

唉,mac没设置字体,中文没显示。。。

# 直观体现单价与评分的分布
# 尝试了几种绘图
# seaborn.relplot() 可以用来表示多个变量之间的关联关系。默认情况下是绘制散点图,也可以绘制线性图
db_df.info()
#sns.jointplot(data=db_df,x="评分",y="单价")
#sns.relplot(data=db_df,x="评分", y="单价")
sns.regplot(data=db_df,x="评分", y="单价")

这个1200的是新台币,没处理,应该处理的,只是觉得方法有点笨,看老师有没有高见

#取出评分前100条数据 直观体现不同出版社的出书次数
db_100 = db_df.sort_values('评分',ascending=False)
db_100 = db_100.iloc[:100,:]
#看一下是不是100条数据。。。
db_100.info()
db_100.head()

#seabron 如何把x轴的xtick  rotation90°还不太会做!  
sns.catplot(x="出版社",data=db_100,kind="count")

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值