目录
前言去掉信息不全的用户描述答案修补缺失的用户数据描述答案解决牛客网用户重复的数据描述答案统一最后刷题日期的格式描述答案将用户的json文件转换为表格形式描述答案前言
Python实际针对数据分析的学习是库,用库来解决一系列的数据分析问题
去掉信息不全的用户
描述
现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):
(资料图片)
Nowcoder_ID:用户IDLevel:等级Achievement_value:成就值Num_of_exercise:刷题量Graduate_year:毕业年份Language:常用语言Continuous_check_in_days:最近连续签到天数Number_of_submissions:提交代码次数Last_submission_time:最后一次提交题目日期运营同学正在做用户调研,为了保证调研的可靠性,想要去掉那些信息不全的用户,即去掉有缺失数据的行,请你帮助他去掉后输出全部数据。
输入描述
数据集直接从当前目录下的Nowcoder.csv文件中读取。
输出描述:
直接输出清洗后的全部数据。
答案
import pandas as pd Nowcoder = pd.read_csv("Nowcoder.csv", sep=",", dtype=object) pd.set_option("display.width", 300) # 设置字符显示宽度 pd.set_option("display.max_rows", None) # 设置显示最大行 pd.set_option("display.max_columns", None) print(Nowcoder[Nowcoder.isna() == False])
修补缺失的用户数据
描述
现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):
Nowcoder_ID:用户IDLevel:等级Achievement_value:成就值Num_of_exercise:刷题量Graduate_year:毕业年份Language:常用语言Continuous_check_in_days:最近连续签到天数Number_of_submissions:提交代码次数Last_submission_time:最后一次提交题目日期运营同学拿到了这份用户文件,但是由于系统BUG,出现了部分缺失的值,请你使用当前的最大年份填充缺失的毕业年份(“Graduate_year”),用Python填充缺失的常用语言(“Language”),用成就值的均值(四舍五入保留整数)填充缺失的成就值(“Achievement_value”)。
输入描述
数据集直接从当前目录下的Nowcoder.csv文件中读取。
输出描述:
输出修改后的全部数据,不用处理输出时年份与成就值的小数点问题。
答案
import pandas as pd Nowcoder = pd.read_csv("Nowcoder.csv", sep=",") pd.set_option("display.width", 300) # 设置字符显示宽度 pd.set_option("display.max_rows", None) # 设置显示最大行 pd.set_option("display.max_columns", None) Nowcoder["Graduate_year"].fillna(Nowcoder["Graduate_year"].max()) Nowcoder["Language"].fillna("Python") Nowcoder["Achievement_value"].fillna(Nowcoder["Achievement_value"].mean().round(0)) print(Nowcoder)
解决牛客网用户重复的数据
描述
现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):
Nowcoder_ID:用户IDLevel:等级Achievement_value:成就值Num_of_exercise:刷题量Graduate_year:毕业年份Language:常用语言Continuous_check_in_days:最近连续签到天数Number_of_submissions:提交代码次数Last_submission_time:最后一次提交题目日期牛牛拿到这份文件的时候一脸懵逼,因为系统错误将很多相同用户的数据输出了多条,导致文件中有很多重复的行,请先检查每一行是否重复,然后输出删除重复行后的全部数据。
输入描述
数据集直接从当前目录下的Nowcoder.csv文件中读取。
输出描述
先输出每一行是否重复,再输出去重后的文件全部数据
答案
import pandas as pd Nowcoder = pd.read_csv("Nowcoder.csv", sep=",", dtype=object) pd.set_option("display.width", 1000) pd.set_option("display.max_rows", None) print(Nowcoder.duplicated()) print(Nowcoder.drop_duplicates(0))
统一最后刷题日期的格式
描述
现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):
Nowcoder_ID:用户IDLevel:等级Achievement_value:成就值Num_of_exercise:刷题量Graduate_year:毕业年份Language:常用语言Continuous_check_in_days:最近连续签到天数Number_of_submissions:提交代码次数Last_submission_time:最后一次提交题目日期运营同学发现最后一次提交题目日期这一列有各种各样的日期格式,这对于他分析用户十分不友好,你能够帮他输出用户ID、等级以及统一后的日期吗?(日期格式统一为yyyy-mm-dd)
输入描述
数据集直接从当前目录下的Nowcoder.csv文件中读取。
输出描述
输出用户ID、等级与最后提交日期三列,包括行号。
答案
import pandas as pd Nowcoder = pd.read_csv("Nowcoder.csv",sep=",",dtype=object) Nowcoder["Last_submission_time"] = pd.to_datetime(Nowcoder["Last_submission_time"],format="%Y-%m-%d") print(Nowcoder[["Nowcoder_ID","Level","Last_submission_time"]])
将用户的json文件转换为表格形式
描述
现有一个Nowcoder.json文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):
Nowcoder_ID:用户IDLevel:等级Achievement_value:成就值Graduate_year:毕业年份Language:常用语言如果你读入了这个json文件,能将其转换为pandas的DataFrame格式吗?
输入描述:
数据集直接从当前目录下的Nowcoder.json文件中读取。
输出描述:
输出转换为DataFrame的全部数据,包括行号。
答案
import pandas as pd import json pd.set_option("display.width", 300) # 设置字符显示宽度 pd.set_option("display.max_rows", None) # 设置显示最大行 pd.set_option("display.max_columns", None) with open("Nowcoder.json", "r") as f: data = json.loads(f.read()) df = pd.DataFrame.from_dict(data) print(df)
以上就是Python实现数据清洗的示例详解的详细内容,更多关于Python数据清洗的资料请关注脚本之家其它相关文章!
X 关闭
X 关闭
- 1现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 2如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 3AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 4转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 5充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 6好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 7名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?
- 8亚马逊云科技成立量子网络中心致力解决量子计算领域的挑战
- 9京东绿色建材线上平台上线 新增用户70%来自下沉市场
- 10网红淘品牌“七格格”chuu在北京又开一家店 潮人新宠chuu能红多久