牛客网Python篇数据分析习题(四)

简介: .现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔)

1.现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):

Nowcoder_ID:用户ID

Level:等级

Achievement_value:成就值

Num_of_exercise:刷题量

Graduate_year:毕业年份

Language:常用语言

Continuous_check_in_days:最近连续签到天数

Number_of_submissions:提交代码次数

Last_submission_time:最后一次提交题目日期

运营同学正在做用户调研,为了保证调研的可靠性,想要去掉那些信息不全的用户,即去掉有缺失数据的行,请你帮助他去掉后输出全部数据。

660ae4e9e9d47440a15fae0a3c4f3cba_5a04028310b74932b5f651e9dbd5c571.png

import pandas as pd
nd = 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)
nd.dropna(axis=0, inplace=True)
print(nd)

2.现有一个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”)。

b7e763b343b1be42e74cf80e96d1ce05_8806d994b2094b649a3531b005543431.png

import pandas as pd
nd = 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)
nd["Graduate_year"].fillna(nd["Graduate_year"].max(), inplace=True)
nd["Language"].fillna("Python", inplace=True)
nd["Achievement_value"].fillna(int(nd["Achievement_value"].mean()), inplace=True)
print(nd)

3.现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):

Nowcoder_ID:用户ID

Level:等级

Achievement_value:成就值

Num_of_exercise:刷题量

Graduate_year:毕业年份

Language:常用语言

Continuous_check_in_days:最近连续签到天数

Number_of_submissions:提交代码次数

Last_submission_time:最后一次提交题目日期

牛牛拿到这份文件的时候一脸懵逼,因为系统错误将很多相同用户的数据输出了多条,导致文件中有很多重复的行,请先检查每一行是否重复,然后输出删除重复行后的全部数据。

7bdc1c8a9e4cb430a582447f84c95b31_8e0dbbd0d86b4c75b7ae1e28dcb53242.png

import pandas as pd
nd=pd.read_csv('Nowcoder.csv')
print(nd.duplicated())
print(nd.drop_duplicated(0))

4.现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):

Nowcoder_ID:用户ID

Level:等级

Achievement_value:成就值

Num_of_exercise:刷题量

Graduate_year:毕业年份

Language:常用语言

Continuous_check_in_days:最近连续签到天数

Number_of_submissions:提交代码次数

Last_submission_time:最后一次提交题目日期

运营同学发现最后一次提交题目日期这一列有各种各样的日期格式,这对于他分析用户十分不友好,你能够帮他输出用户ID、等级以及统一后的日期吗?(日期格式统一为yyyy-mm-dd)

af472351c93ad19e66f9c1b9dfea6d0d_dc052a65c0fb4099a553c8c4e5f03f15.png

import pandas as pd
nd = pd.read_csv("Nowcoder.csv", sep=",", dtype=object)
nd["Last_submission_time"] = pd.to_datetime(
    nd["Last_submission_time"], format="%Y-%m-%d")
print(nd[["Nowcoder_ID", "Level", "Last_submission_time"]])

5.现有一个Nowcoder.json文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):

Nowcoder_ID:用户ID

Level:等级

Achievement_value:成就值

Graduate_year:毕业年份

Language:常用语言

如果你读入了这个json文件,能将其转换为pandas的DataFrame格式吗?

4b51f75adb089838fd9ad43482d5e8aa_f3f2292983be4e4b87f1def873f49d75.png

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())
print(pd.DataFrame(data))

6.现有牛客网12月每天练习题目情况的数据集nowcoder.csv。包含如下字段(字段之间用逗号分隔):

user_id:用户id

question_id:问题编号

result:运行结果

date:练习日期

请你统计2021年12月每天练习题目的数量。

bf75d97a7addabb64443a18c3da16815_1bcc93cf2e3048309bbcc2aa45f67582.png

import pandas as pd
nowcoder = pd.read_csv("nowcoder.csv", parse_dates=True, index_col="date")
nd_num = nowcoder.groupby("date")["question_id"].count()
print(nd_num)

7.现有牛客网12月每天练习题目情况的数据集nowcoder.csv。包含如下字段(字段之间用逗号分隔):

user_id:用户id

question_id:问题编号

result:运行结果

date:练习日期

现需要查看用户在某天练习后第二天还会再来练习的留存情况,请计算用户练习的平均次日留存率。

d55b3796ac98511d37c979678774253e_03eca3d2a6c44cf99b6ae55c74d5ce25.png

import pandas as pd
from datetime import timedelta
df = pd.read_csv("nowcoder.csv", sep=",")
tit_id = df["user_id"].count()
nd = pd.merge(df, df, on="user_id")
nd["date_x"] = pd.to_datetime(nd.date_x).dt.date
nd["date_y"] = pd.to_datetime(nd.date_y).dt.date
nd["differ"] = nd["date_x"] - nd["date_y"]
sum_id = nd[nd.differ == "1 days"]["differ"].count()
res = round(sum_id / tit_id, 2)
print(res)

8.现有牛客网12月每天练习题目的数据集nowcoder.csv。包含如下字段(字段之间用逗号分隔):

user_id:用户id

question_id:问题编号

result:运行结果

date:练习日期

请你统计2021年12月答题结果正确和错误的前提下每天的答题次数。

272a216aa4a4f9ad29e866cf36a47c45_179da4a3abb44a7ab7d82db3c7265078.png

import pandas as pd
df = pd.read_csv("nowcoder.csv")
df.rename(columns={"date": "year-month-day"}, inplace=True)
nd = df.groupby(["result", "year-month-day"])["question_id"].count()
print(nd)
相关文章
|
11天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
21天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
【10月更文挑战第42天】本文是一篇技术性文章,旨在为初学者提供一份关于如何使用Python进行数据分析的入门指南。我们将从安装必要的工具开始,然后逐步介绍如何导入数据、处理数据、进行数据可视化以及建立预测模型。本文的目标是帮助读者理解数据分析的基本步骤和方法,并通过实际的代码示例来加深理解。
33 3
|
15天前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
45 4
数据分析的 10 个最佳 Python 库
|
18天前
|
存储 数据可视化 数据挖掘
使用Python进行数据分析和可视化
本文将引导你理解如何使用Python进行数据分析和可视化。我们将从基础的数据结构开始,逐步深入到数据处理和分析的方法,最后通过实际的代码示例来展示如何创建直观的数据可视化。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。让我们一起探索数据的世界,发现隐藏在数字背后的故事!
|
16天前
|
存储 数据可视化 数据挖掘
Python数据分析项目:抖音短视频达人粉丝增长趋势
Python数据分析项目:抖音短视频达人粉丝增长趋势
|
20天前
|
数据采集 存储 数据可视化
Python数据分析:揭秘"黑神话:悟空"Steam用户评论趋势
Python数据分析:揭秘"黑神话:悟空"Steam用户评论趋势
|
21天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第42天】本文将介绍如何使用Python进行数据分析和可视化。我们将从数据导入、清洗、探索性分析、建模预测,以及结果的可视化展示等方面展开讲解。通过这篇文章,你将了解到Python在数据处理和分析中的强大功能,以及如何利用这些工具来提升你的工作效率。
|
22天前
|
数据采集 数据可视化 数据挖掘
深入浅出:使用Python进行数据分析的基础教程
【10月更文挑战第41天】本文旨在为初学者提供一个关于如何使用Python语言进行数据分析的入门指南。我们将通过实际案例,了解数据处理的基本步骤,包括数据的导入、清洗、处理、分析和可视化。文章将用浅显易懂的语言,带领读者一步步掌握数据分析师的基本功,并在文末附上完整的代码示例供参考和实践。
|
20天前
|
数据采集 数据可视化 数据挖掘
掌握Python数据分析,解锁数据驱动的决策能力
掌握Python数据分析,解锁数据驱动的决策能力
|
22天前
|
数据采集 数据可视化 数据挖掘
Python数据分析:Pandas库实战指南
Python数据分析:Pandas库实战指南