列表

详情


DA25. 修补缺失的用户数据

描述

现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):
Nowcoder_ID:用户ID
Level:等级
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文件中读取。
输出描述:
输出修改后的全部数据,不用处理输出时年份与成就值的小数点问题。

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Python 3 解法, 执行用时: 786ms, 内存消耗: 524288KB, 提交时间: 2022-07-27

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)

Python 3 解法, 执行用时: 794ms, 内存消耗: 524288KB, 提交时间: 2022-07-25

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('Python',inplace=True)
# Nowcoder['Language'].fillna(Nowcoder['Graduate_year'].max(),inplace=True)
# Nowcoder['Achievement_value'].fillna(round(Nowcoder['Achievement_value'].mean(),0),inplace=True)
# print(Nowcoder)
# 第二
Nowcoder['Graduate_year']=Nowcoder['Graduate_year'].fillna(Nowcoder['Graduate_year'].max())
Nowcoder['Language']=Nowcoder['Language'].fillna('Python')
Nowcoder['Achievement_value']=Nowcoder['Achievement_value'].fillna(Nowcoder['Achievement_value'].mean().round(0))
print(Nowcoder) 
# 第三
Nowcoder['Graduate_year']=Nowcoder['Graduate_year'].fillna(Nowcoder['Graduate_year'].max())
Nowcoder['Language']=Nowcoder['Language'].fillna('Python')
Nowcoder['Achievement_value']=Nowcoder['Achievement_value'].fillna(round(Nowcoder['Achievement_value'].mean(),0))
print(Nowcoder) 

Python 3 解法, 执行用时: 799ms, 内存消耗: 524288KB, 提交时间: 2022-07-24

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(),inplace=True)
Nowcoder['Language'].fillna('Python',inplace=True)
Nowcoder['Achievement_value'].fillna(round(Nowcoder['Achievement_value'].mean(),0),inplace=True)
print(Nowcoder)

Python 3 解法, 执行用时: 801ms, 内存消耗: 524288KB, 提交时间: 2022-07-24

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)

ma = Nowcoder['Graduate_year'].max()
me = Nowcoder['Achievement_value'].mean().round(0)
Nowcoder['Graduate_year'].fillna(ma,inplace=True)
Nowcoder['Language'].fillna('Python',inplace=True)
Nowcoder['Achievement_value'].fillna(me,inplace=True)
print(Nowcoder)
     

Python 3 解法, 执行用时: 804ms, 内存消耗: 524288KB, 提交时间: 2022-07-26

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

上一题