数据分析及可视化(当当网畅销书)

对下面数据进行数据分析可视化。

导入包:

# coding:utf-8
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from wordcloud import WordCloud
import jieba
from collections import Counter
matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 显示中文
# 为了坐标轴负号正常显示。matplotlib默认不支持中文,设置中文字体后,负号会显示异常。需要手动将坐标轴负号设为False才能正常显示负号。
matplotlib.rcParams['axes.unicode_minus'] = False
data=pd.read_excel("当当网畅销书Top500 .xlsx")
print(data.head)

1.

图一:饼图:前一百本书中 书本量前五作者占比
writer=data["作者"][:100]
writers=writer.value_counts().sort_values(ascending=False)[:7]
print(writers.index.tolist())
print(writers.values)

a=[]

for i in range(7):
    s=writers.index.tolist()[i]+":"+str(writers.values[i])
    a.append(s)

print(a)
plt.pie(writers.values,labels=a, autopct='%1.1f%%')

plt.show()

2.

图二:简介词云图
intro=data["简述"].tolist()
intros=[str(item) for item in intro]
intro="".join(intros)
print(intro)

# 分词

stop_words = [",",'的', '是', '在', '等',"。","、", '!', '《', '》', ' ', '“', '”',"你","和",";","+",","]

# 分词并去除停用词
filtered_words = [word for word in jieba.cut(intro) if word not in stop_words]

# 统计词频
word_counts = Counter(filtered_words)

# 绘制词云图
wordcloud = WordCloud(background_color='white', width=800, height=400, font_path='C:\Windows\Fonts\SimHei.ttf').generate_from_frequencies(word_counts)

plt.imshow(wordcloud)
plt.axis('off')
plt.show()

3.

图三:书名词云图
name=data["书名"].tolist()
names=[str(item) for item in name]
names="".join(names)
stop_words = ['(', ')', ',',",",'的', '是', '在', '等',"。","、", '!', '《', '》', ' ', '“', '”',"你","和",";","+"]
filtered_words = [word for word in jieba.cut(names) if word not in stop_words]
word_counts = Counter(filtered_words)
print(word_counts)
wordcloud = WordCloud(background_color='white', width=800, height=400, font_path='C:\Windows\Fonts\SimHei.ttf').generate_from_frequencies(word_counts)

plt.imshow(wordcloud)
plt.axis('off')
plt.show()

4.

图四:柱状图:按作者分类看平均定价
price=data.loc[:100,["作者","定价"]]

prices=price.groupby("作者")["定价"].mean().sort_values(ascending=False)[:10]
print(prices.index.tolist())
print(prices.values.tolist())

plt.bar(prices.index.tolist(),prices.values.tolist())
for i, v in enumerate(prices.values.tolist()):
    plt.text(i, v, str(v), ha='center', va='bottom')
plt.xticks(rotation=45)
plt.show()
5.
图五:饼图:开本占比
kaiben=data.groupby("开本").size()
plt.pie(kaiben, labels=kaiben.index, autopct='%1.1f%%')  # 绘制饼图,显示百分比
plt.title('Column Data Distribution')  # 添加饼图标题
plt.legend()  # 显示图例
plt.show()

6.
图六:饼图: 对定价进行分类 画出占比饼图
prices=data["定价"]
ranges=[(0, 50), (50, 70), (70, 100), (100, 200), (200, 500)]
category_counts = {}
for price in prices:
    for min_price, max_price in ranges:
        if min_price <= price < max_price:
            if (min_price, max_price) in category_counts:
                category_counts[(min_price, max_price)] += 1
            else:
                category_counts[(min_price, max_price)] = 1
            break
labels = [f"{min_price}-{max_price} ({category_counts[(min_price, max_price)]})" for min_price, max_price in category_counts.keys()]
sizes = list(category_counts.values())
plt.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.title("Category Distribution")
plt.show()


                
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
基于Python爬虫的图书评价数据分析可视化是一种通过爬取图书评价数据,利用Python进行数据分析可视化的方法。 首先,我们需要使用Python的爬虫技术,通过爬取图书网站的评价数据,将数据保存到本地或数据库中。可以利用“requests”库发送HTTP请求获取网页内容,然后使用“BeautifulSoup”库解析网页,提取出所需的评价数据。 接下来,使用Python中的数据分析库,如“Pandas”和“Numpy”,对爬取到的图书评价数据进行处理和分析。可以进行数据清洗,剔除掉缺失或异常的数据;进行数据统计,计算平均评分、评价数量等指标;进行特征提取,提取出关键词、标签等信息。 然后,可以使用Python中的数据可视化库,如“Matplotlib”和“Seaborn”,对数据进行可视化展示。可以绘制柱状图、折线图、散点图等,展示不同图书评分的分布情况;可以绘制词云图、饼图等,展示评价中的关键词和类别分布情况。 最后,结合数据分析可视化的结果,我们可以得出一些有关图书评价的结论。例如,通过分析评分分布,可以了解图书的受欢迎程度;通过分析关键词分布,可以了解读者对图书内容的关注点;通过比较不同图书的评价情况,可以进行图书推荐等。 综上所述,基于Python爬虫的图书评价数据分析可视化是一种通过爬取图书评价数据,利用Python进行数据分析可视化的方法,可以帮助我们深入了解图书评价情况,并得出一些有关图书的结论和建议。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值