数据清洗当当网图书畅销榜
时间: 2023-08-26 15:05:36 浏览: 126
当当网图书畅销榜的数据清洗大致可以分为以下几个步骤:
1. 获取数据:从当当网图书畅销榜的网站上爬取数据,一般可以使用 Python 中的 requests 库或者 scrapy 爬虫框架。
2. 数据解析:将爬取的网页数据解析成可以处理的数据结构,比如 Python 中的字典或者列表。
3. 数据清洗:对解析出来的数据进行清洗,一般需要处理缺失值、异常值、重复值、错误数据等,同时需要进行数据类型转换、去除空格、去除特殊符号等操作。
4. 数据存储:将清洗后的数据存储到文件或数据库中,以便后续的分析和使用。
具体实现的话,可以参考以下代码示例:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 爬取当当网图书畅销榜的数据
url = 'http://bang.dangdang.com/books/fivestars/01.00.00.00.00.00-recent30-0-0-1-{}'
data = []
for page in range(1, 6):
r = requests.get(url.format(page))
soup = BeautifulSoup(r.text, 'html.parser')
items = soup.select('.bang_list li')
for item in items:
name = item.select('.name a')[0].text.strip()
author = item.select('.publisher_info a')[0].text.strip()
price = item.select('.price_n')[0].text.strip()
comment = item.select('.star.line .tuijian')[0].text.strip()
data.append({'书名': name, '作者': author, '价格': price, '评论': comment})
# 将数据转换成 DataFrame 格式
df = pd.DataFrame(data)
# 数据清洗
df['价格'] = df['价格'].apply(lambda x: float(x.replace('¥', '')))
df['评论'] = df['评论'].apply(lambda x: x.replace('条评论', ''))
df['评论'] = df['评论'].apply(lambda x: int(x) if x else 0)
# 数据存储
df.to_csv('dangdang_book.csv', index=False, encoding='utf-8-sig')
```
上面的代码中,我们首先使用 requests 库和 BeautifulSoup 解析库爬取当当网图书畅销榜的数据,然后将数据转换成 DataFrame 格式,并进行了一些清洗操作,最后将清洗后的数据存储到了 CSV 文件中。
阅读全文