【楚怡杯】职业院校技能大赛 “Python程序开发”数据清洗练习

题目:

  1. 将书名为‘一级建造师 2020教材 2020版一级建造师 建筑工程管理与实务’的作者(空值)改为 '全国一级建造师执业资格考试用书编写委员会',‘出版日期’改为‘2020-05-01’
  2. 将书名为‘中国*简史(32开)2021党史学习教育系列读物领导*学习指’的作者(空值)改为 '中国*简史编写组'
  3. 将书名为‘写给青少年的古文观止全套5册正版小古文小学初中高中注音详解注释’的作者(空值)改为 '伊泽'
  4. 考虑到电子书价格缺失值占比过大,这里直接删除这一特征列
  5. 把推荐值为0%的值,替换成100%,评论数的空值用平均值填充。
  6. 将排行榜类型中的“xxxx年”改成“xxxx”,并且改成int类型
  7.  将评论数转换为整数
  8. 将出版日期转换为日期格式(2019-11-01  ==>  2019年11月01日)
  9. 将折扣比例去掉'折'字符',并转换为浮点数
  10. 将推荐值从百分比字符删除,并降序排序
  11. 索引重新排序
  12. 找出哪本书出版最多,出版了几次
  13. 一共有多少位作者

答案:

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())

上一篇:python爬虫 - 深入requests模块


下一篇:Vue基础(二)-收集表单数据