Python数据分析

牛客网上的Python数据分析题

重点题型:

1.空值

import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv',sep=',',dtype=object)
print(Nowcoder.isnull().any())

在这里插入图片描述

去掉信息不全的用户

print(Nowcoder.dropna(how='any')

2.输出该数据集中语言为CPP、C、C#对应的所有列的信息,包括列号

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)


print(Nowcoder[Nowcoder["Language"].isin(["CPP","C","C#"])])

3. 牛客网不同语言使用人数

Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')


print(Nowcoder["Language"].value_counts())

4. 假设2018年毕业的你突发奇想,想要知道牛客网有哪些使用CPP的7级用户,且他们的毕业年份和你不是同年的,请问该怎么筛选

print(Nowcoder[(Nowcoder["Level"]==7) & (Nowcoder["Language"]=="CPP") & (Nowcoder["Graduate_year"]!=2018)])

5.正在刷题的小白想知道牛客网刷题数量不低于500题的大佬,他们的等级和成就值是怎么样的

a=Nowcoder[Nowcoder["Num_of_exercise"]>=500]
print(a.iloc[:,[1,2]])

6.输出该数据集中常用语言所在列各种不同语言出现的次数。

print(Nowcoder["Language"].value_counts())

7.打算学习Python的小白同学打开了牛客网,他想知道Python到底难不难,于是他想从牛客网Python用户都平均提交了多少次代码来认识

b=Nowcoder[Nowcoder["Language"]=="Python"]

print(round(b["Number_of_submissions"].mean(),1))

8.你想知道这个文件中记录了多少种常用语言,一并输出这些语言的名字

print(Nowcoder["Language"].nunique())  #nunique()去重统计个数
print(Nowcoder["Language"].unique())#unique()显示去重列表

print(Nowcoder["Language"].drop_duplicates().count())
print(Nowcoder["Language"].drop_duplicates())

9.对于牛客网的等级制度,你很感兴趣,你想知道大部分人都在什么等级,你能找到文件中等级的众数吗?

print(pd.DataFrame(Nowcoder["Level"].mode(),columns=["Level"]))

10. 统计牛客网用户的名字长度

print(Nowcoder["Name"].str.len())##注意 类型转化【字符串】)

11. 修补缺失的用户数据

a=Nowcoder["Graduate_year"].max()
avg=Nowcoder["Achievement_value"].mean().round(0)


Nowcoder.fillna({"Graduate_year":a,"Language":avg},inplace=True)
print(Nowcoder)

12.解决牛客网用户重复的数据

print(Nowcoder.duplicated(subset=None, keep='first'))#返回truefalse
print(Nowcoder.drop_duplicates())删除重复值

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

data["Last_submission_time"]=pd.to_datetime(data["Last_submission_time"],format="%Y-%m-%d")

法(1print(data[['Nowcoder_ID','Level','Last_submission_time']])

法(2print(data.iloc[:,[0,1,8]])

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

函数(groupby的使用和value_counts()的区别 返回值不同)

import pandas as pd
nowcoder = pd.read_csv('nowcoder.csv', parse_dates=True, index_col='date')


a=nowcoder.groupby("date")


print(a.size())

size()函数主要是用来统计矩阵元素个数,或矩阵某一维上的元素个数的函数。
参数
numpy.size(a, axis=None)
a:输入的矩阵
axis:int型的可选参数,指定返回哪一维的元素个数。当没有指定时,返回整个矩阵的元素个数。
例子

a = np.array([[1,2,3],[4,5,6]])
np.size(a)
6
np.size(a,1)
3
np.size(a,0)
2
axis的值没有设定,返回矩阵的元素个数
axis = 0,返回该二维矩阵的行数
axis = 1,返回该二维矩阵的列数

15. 牛牛想要知道牛客网这些刷题用户,每年毕业生中最高的成就值分别是多少?

import pandas as pd


Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')


a=Nowcoder.groupby("Graduate_year")


print(a["Achievement_value"].max()) #特殊点【注意括号的类型】

16.运动会各项目报名透视表【 如education部门男性中报名longJump的人数为1人。】

import pandas as pd
signup = pd.read_csv('signup.csv')
items = pd.read_csv('items.csv')


data=pd.merge(signup,items,on="item_id",how="inner")
data1=data.pivot_table(index=["sex","department"],
                      columns="item_name",
                      aggfunc={"employee_id":"size"},
                      fill_value=0)
print(data1)

17.某店铺消费最多的前三名用户

print(sales.sort_values(by="monetary",ascending=False).reset_index(drop=True).head(3))
ascending:排序方式:为默认为TRUE–升序,False–降序

by:通过什么进行排名

在这里插入图片描述

原创不易,支持点赞是我创作的最大动力!!!!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲲鹏猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值