京东销量分析数据可视化
时间: 2023-11-11 07:06:37 浏览: 164
京东销量分析数据可视化是通过对京东评论数据的爬取和筛选,对鞋子的销售数据进行分析和可视化展示的过程。具体步骤包括:找到评论区的URL,爬取京东数据,数据储存,从CSV文件中读取数据,对不同颜色的鞋子的销量进行统计,统计各个型号的鞋子数量,统计每个月的销量,使用饼图展示颜色,使用饼图展示型号,使用折线和散点展示月销量,使用条形图展示月销量。通过这些步骤,我们可以更加直观地了解鞋子的销售情况和趋势。
相关问题
python爬取京东2023年手机销量排行榜并且保存到csv文件中,做数据可视化
好的,那么在上一个问题的基础上,我们可以将结果保存到CSV文件中,方便后续进行数据可视化处理。
首先,我们需要将结果保存到一个二维列表中,然后使用Python的csv库将二维列表写入CSV文件中。
```python
import csv
result = []
for item in items:
name = item.find('div', {'class': 'p-name'}).text.strip()
sales = item.find('div', {'class': 'p-commit'}).text.strip().replace('条评价', '')
result.append([name, sales])
with open('mobile_sales.csv', 'w', newline='', encoding='utf-8-sig') as f:
writer = csv.writer(f)
writer.writerow(['商品名称', '销量'])
for row in result:
writer.writerow(row)
```
在这里,我们使用了csv.writer来创建一个写入CSV文件的对象,然后使用writerow方法写入每一行数据。注意,我们需要在打开文件时指定newline=''参数,否则会出现多余的空行。
最后,我们可以使用Python的pandas库读取CSV文件,并使用matplotlib库进行数据可视化处理。这里给出一个简单的示例:
```python
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('mobile_sales.csv')
plt.bar(df['商品名称'], df['销量'])
plt.xticks(rotation=90)
plt.xlabel('商品名称')
plt.ylabel('销量')
plt.title('2023年京东手机销量排行榜')
plt.show()
```
在这里,我们使用了pandas库读取CSV文件,并将商品名称和销量分别作为x轴和y轴数据进行绘图。注意,我们需要使用plt.xticks(rotation=90)来将x轴标签旋转90度,否则标签可能会重叠。
希望这个示例能够帮助您完成爬取京东销量排行榜并进行数据可视化的任务。
从京东爬取卖充电宝的所有店铺、价格、销量、评价、省份,并对数据进行清洗, 给出最高价、最低价、平均价、价格的百分位数,由评论分析出商家的服务质量等级, 并将数据可视化。写出详细方法和源代码
本任务需要使用Python进行编程,具体步骤如下:
1. 安装必要的Python库。我们需要使用requests、beautifulsoup4、pandas、numpy、matplotlib这些库。
```python
pip install requests beautifulsoup4 pandas numpy matplotlib
```
2. 发送HTTP请求获取京东充电宝页面的HTML代码。我们可以使用requests库发送请求,然后获取响应的HTML代码。
```python
import requests
url = "https://search.jd.com/Search?keyword=%E5%85%85%E7%94%B5%E5%AE%9D&enc=utf-8&wq=%E5%85%85%E7%94%B5%E5%AE%9D&pvid=8a8a756cbb714af19bedf65c4d8d4bf4"
response = requests.get(url)
html = response.text
```
3. 使用beautifulsoup4库解析HTML代码。我们需要使用beautifulsoup4库来解析HTML代码,然后提取出需要的数据。
```python
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, "html.parser")
items = soup.find_all("div", class_="gl-i-wrap")
```
4. 提取数据并进行清洗。我们需要提取店铺、价格、销量、评价、省份等数据,并对这些数据进行清洗。
```python
data = []
for item in items:
shop = item.find("div", class_="p-shop").a.text.strip()
price = item.find("strong", class_="J_price").i.text.strip()
sales = item.find("div", class_="p-commit").strong.a.text.strip()
comment = item.find("div", class_="p-commit").strong.a["href"].split("#")[1].strip()
province = item.find("div", class_="p-icons").find_all("i")[0]["title"].strip()
data.append([shop, price, sales, comment, province])
# 清洗数据
import re
for i in range(len(data)):
# 清洗店铺
data[i][0] = re.sub("\n.*", "", data[i][0]).strip()
# 清洗价格
data[i][1] = float(re.sub("¥", "", data[i][1]))
# 清洗销量
data[i][2] = int(re.sub("笔.*", "", data[i][2]))
# 清洗评论
data[i][3] = re.sub(".*comment.shtml\?", "", data[i][3]).split("&")[0]
# 清洗省份
data[i][4] = re.sub("省|市", "", data[i][4])
```
5. 分析数据并进行可视化。我们可以使用pandas、numpy、matplotlib这些库来分析数据并进行可视化。
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 将数据转换为DataFrame格式
df = pd.DataFrame(data, columns=["shop", "price", "sales", "comment", "province"])
# 计算最高价、最低价、平均价、价格的百分位数
max_price = df["price"].max()
min_price = df["price"].min()
mean_price = df["price"].mean()
percentiles = np.percentile(df["price"], [25, 50, 75, 90])
# 分析商家服务质量等级
def get_comment_level(comment):
if comment == "0":
return "无评论"
elif comment.isdigit():
if int(comment) > 10000:
return "非常好"
elif int(comment) > 1000:
return "好"
else:
return "一般"
else:
return "未知"
df["comment_level"] = df["comment"].apply(get_comment_level)
# 绘制各省份充电宝平均价格的柱状图
province_group = df.groupby("province")
mean_price_by_province = province_group["price"].mean()
mean_price_by_province.plot(kind="bar")
plt.title("各省份充电宝平均价格")
plt.xlabel("省份")
plt.ylabel("价格(元)")
plt.show()
```
完整代码如下:
阅读全文