目录
一、查看数据
DA1 用pandas查看牛客网用户数据
DA2 牛客网用户数据集的大小
DA3 牛客网的第10位用户
DA4 统计牛客网部分用户使用语言
二、数据索引
DA5 牛客网用户没有补全的信息
DA6 查看牛客网哪些用户使用Python
DA7 牛客网Python用户的成就值
DA8 文件最后用户的部分数据
三、逻辑运算
DA9 2020年毕业的人中最喜欢用Java的用户
DA9 牛客网C系用户们的信息
DA10 统计牛客网刷题数量500以上的大佬
DA11 按照毕业年份与使用语言筛选牛客网7级用户
四、中级函数
DA12 牛客网不同语言使用人数
DA13 牛客网用户最近的最长与最短连续签到天数
DA14 Python用户的平均提交次数
DA15 牛客网用户等级的中位数
DA16 用户常用语言有多少
DA17 牛客网最多的用户等级
DA18 用分位数分析牛客网用户活动
DA19 牛客网大佬之间的差距
DA20 牛客用户刷题量的方差与提交次数的标准差
DA21 大佬用户成就值比例
DA22 牛客网用户最高的正确率
DA23 统计牛客网用户的名字长度
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv',sep=',',dtype=object)
print(Nowcoder.head(6))
打开文件时需要添加dtype=object,防止年份信息读取为小数。
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv',sep=',',dtype=object)
print(Nowcoder.shape)
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv',sep=',',dtype=object)
print(Nowcoder.loc[10])
例:
print(df.loc[1,'name']) # 索引1(行),名为‘name’的列
例:
print(df.iloc[1,0]) # 第2行第1列的值
import pandas as pd
Nowcoder =pd.read_csv('Nowcoder.csv')
print(Nowcoder.loc[10:20, 'Language'])
import pandas as pd
Nowcoder = pd.read_csv("Nowcoder.csv", sep=",", dtype=object)
print(Nowcoder.isna().any())
# Python中 any () 函数的基本使用 :any () 函数用于判断给定的可迭代参数 iterable 是否都为 False,如果是,any ()操作后的结果返回 False,如果给定的可迭代参数 iterable其中有一个为 True,any ()操作后的结果则返回 True。
# axis=0:方向沿着列;axis=1方向沿着行
import pandas as pd
Nowcoder = pd.read_csv("Nowcoder.csv", sep=",", dtype=object)
print(Nowcoder[Nowcoder["Language"] == "Python"])
import pandas as pd
Nowcoder = pd.read_csv("Nowcoder.csv", sep=",")
print(Nowcoder[Nowcoder["Language"] == "Python"]["Achievement_value"])
# print(Nowcoder.query('Language=="Python"')['Achievement_value'])
# print(Nowcoder.query('Language=="Python"').Achievement_value)
import pandas as pd
Nowcoder = pd.read_csv("Nowcoder.csv", sep=",")
a = Nowcoder.tail(5)
print(a[["Nowcoder_ID", "Level", "Achievement_value", "Language"]])
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['Graduate_year']==2020)&(Nowcoder['Language']=='Java')])
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#"])])
# isin()函数:用来清洗数据,删选过滤掉Dateframe中的一些行,直接用返回的是bool值,然后放入Nowcoder[ {内容} ]中,则返回返回为True的数据行
# print(Nowcoder.query("Language == 'CPP' or Language == 'C'"))
# query()函数查找Languague列中的CPP、C
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv',sep=',')
Nowcoder = Nowcoder[['Level','Achievement_value']]
print(Nowcoder[Nowcoder['Achievement_value']>=500])
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.query("Level==7 and Language=='CPP' and Graduate_year!=2018"))
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
print(Nowcoder['Language'].value_counts())
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
# 最长
day_max = Nowcoder['Continuous_check_in_days'].max()
# 最短
day_min = Nowcoder['Continuous_check_in_days'].min()
print(day_max, '\n', day_min)
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
print((Nowcoder.query("Language == 'Python'")['Number_of_submissions'].mean().round(1)))
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
print(int(Nowcoder[Nowcoder['Num_of_exercise']>=10]['Level'].median()))
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
# unique()方法返回的是去重之后的不同值,而nunique()方法则直接放回不同值的个数
print(Nowcoder.Language.nunique())
print(Nowcoder.Language.tolist())
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
print(pd.DataFrame(Nowcoder['Level'].mode(), columns=['Level']))
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
print(Nowcoder[['Achievement_value', 'Continuous_check_in_days']].quantile(q=0.25))
print(Nowcoder[['Num_of_exercise', 'Number_of_submissions']].quantile(q=0.75))
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
a=Nowcoder[Nowcoder['Level']==7]['Achievement_value'].max()
b=Nowcoder[Nowcoder['Level']==7]['Achievement_value'].min()
print(int(a-b))
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
# 用户刷题量的方差
A = Nowcoder['Num_of_exercise'].var()
print('%.2f'%A)
# 提交代码次数的标准差
B = Nowcoder.iloc[:,7].std()
print('%.2f'%B)
'''
# pandas 中的 var 函数可以得到样本方差(注意不是总体方差)
# std 函数可以得到样本标准差,若要得到某一行或某一列的方差,则也可用 iloc 选取某行或某列,后面再跟 var 函数或 std 函数即可
df.var() # 显示每一列的方差
df.var(axis = 1) # 显示每一行的方差
df.std() # 显示每一列的标准差
df.std(axis = 1) # 显示每一行的标准差
df.iloc[0, :].std() # 显示第 1 行的标准差
df.iloc[:, 2].std() # 显示第 3 列的标准差
'''
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
nc=Nowcoder.loc[Nowcoder['Level']==7]
print(nc['Achievement_value']/Nowcoder['Achievement_value'].sum())
import pandas as pd
Nowcoder = pd.read_csv("Nowcoder.csv")
n1 = Nowcoder[Nowcoder["Num_of_exercise"] > 10]
n2 = n1.Num_of_exercise / n1.Number_of_submissions
print(n2.max().round(3))
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
print(Nowcoder['Name'].apply(lambda x : len(x)))
# print(df['Name'].str.len())