题目:
- 将书名为‘一级建造师 2020教材 2020版一级建造师 建筑工程管理与实务’的作者(空值)改为 '全国一级建造师执业资格考试用书编写委员会',‘出版日期’改为‘2020-05-01’
- 将书名为‘中国*简史(32开)2021党史学习教育系列读物领导*学习指’的作者(空值)改为 '中国*简史编写组'
- 将书名为‘写给青少年的古文观止全套5册正版小古文小学初中高中注音详解注释’的作者(空值)改为 '伊泽'
- 考虑到电子书价格缺失值占比过大,这里直接删除这一特征列
- 把推荐值为0%的值,替换成100%,评论数的空值用平均值填充。
- 将排行榜类型中的“xxxx年”改成“xxxx”,并且改成int类型
- 将评论数转换为整数
- 将出版日期转换为日期格式(2019-11-01 ==> 2019年11月01日)
- 将折扣比例去掉'折'字符',并转换为浮点数
- 将推荐值从百分比字符删除,并降序排序
- 索引重新排序
- 找出哪本书出版最多,出版了几次
- 一共有多少位作者
答案:
import pandas as pd
from datetime import datetime
pd.set_option('display.max_columns', None)
data = pd.read_csv('当当网畅销图书榜单数据.csv')
#将书名为‘一级建造师 2020教材 2020版一级建造师 建筑工程管理与实务’的作者(空值)改为 '全国一级建造师执业资格考试用书编写委员会',‘出版日期’改为‘2020-05-01’
#将书名为‘中国*简史(32开)2021党史学习教育系列读物领导*学习指’的作者(空值)改为 '中国*简史编写组'
#将书名为‘写给青少年的古文观止全套5册正版小古文小学初中高中注音详解注释’的作者(空值)改为 '伊泽'
data.loc[data['书名'] == '一级建造师 2020教材 2020版一级建造师 建筑工程管理与实务',['作者' ]] = '全国一级建造师执业资格考试用书编写委员会'
data.loc[data['书名'] == '一级建造师 2020教材 2020版一级建造师 建筑工程管理与实务','出版日期'] = '2020-05-01'
data.loc[data['书名'] == '中国*简史(32开)2021党史学习教育系列读物领导*学习指','作者'] = '中国*简史编写组'
data.loc[data['书名'] == '写给青少年的古文观止全套5册正版小古文小学初中高中注音详解注释','作者'] = '伊泽'
#考虑到电子书价格缺失值占比过大,这里直接删除这一特征列
data.drop(columns=['电子书价格'],inplace=True)
#把推荐值为0%的值,替换成100%,评论数的空值用平均值填充。
data['推荐值'] = data['推荐值'].replace('0%','100%')
data['评论数'] = data['评论数'].fillna(data['评论数'].mean())
# 将排行榜类型中的“xxxx年”改成“xxxx”,并且改成int类型
# data['排行榜类型'] = data['排行榜类型'].apply(lambda x : int(str(x).replace('年','')))
data['排行榜类型'] = data['排行榜类型'].str.replace('年','').astype(int)
# 将评论数转换为整数
data['评论数'] = data['评论数'].astype(int)
# 将出版日期转换为日期格式(2019-11-01 ==> 2019年11月01日)
data['出版日期'] = pd.to_datetime(data['出版日期']).dt.strftime('%Y年%m月%d日')
# data['出版日期'] = pd.to_datetime(data['出版日期'].str.replace('年','-').str.replace('月','-').str.replace('日','-'))
# 将折扣比例去掉'折'字符',并转换为浮点数
data['折扣比例'] = data['折扣比例'].str.replace('折','').astype(float)
# 将推荐值从百分比字符删除,并降序排序
data['推荐值'] = data['推荐值'].str.replace('%','').astype(float)
data.sort_values(by='推荐值',ascending=False,inplace=True)
#索引重新排序
data.index = [i for i in range(0,2000)]
#找出哪本书出版最多,出版了几次
print(data['书名'].value_counts().idxmax(),data['书名'].value_counts().max())
#一共有多少位作者
print(data['作者'].nunique())