携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第28天
- DA18 用分位数分析牛客网用户活动 【分位数的概念】
参考代码如下:
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
print(Nowcoder.loc[:,['Achievement_value','Continuous_check_in_days']].quantile(0.25))
print(Nowcoder.loc[:,['Num_of_exercise','Number_of_submissions']].quantile(0.75))
分位数(Quantile),亦称分位点,是指将一个随机变量的概率分布范围分为几个等份的数值点,常用的有中位数(即二分位数)、四分位数、百分位数等。 实例1:
数据总量: 6, 47, 49, 15, 42, 41, 7, 39, 43, 40, 36
由小到大排列的结果: 6, 7, 15, 36, 39, 40, 41, 42, 43, 47, 49
一共11项 Q1 的位置=(11+1) × 0.25=3, Q2 的位置=(11+1)× 0.5=6, Q3的位置=(11+1) × 0.75=9
Q1 = 15, Q2 = 40, Q3 = 43
———————————————— 版权声明:本文为CSDN博主「Kwoky」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:blog.csdn.net/Kwoky/artic…
- DA19 牛客网大佬之间的差距
参考代码如下:
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
tmp = Nowcoder[Nowcoder['Level'] == 7]['Achievement_value']
#min_value = Nowcoder[Nowcoder['Level'] == 7][Achievement_value]
print(int(max(tmp)-min(tmp)))
print(int(tmp.max()-tmp.min()))
- DA20 牛客用户刷题量的方差与提交次数的标准差
参考代码如下:
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
tep1 = Nowcoder.Num_of_exercise.var().round(2)
tep2 = Nowcoder.Number_of_submissions.std().round(2)
print(tep1,tep2,sep='\n')
知识点:
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 列的标准差
- DA21 大佬用户成就值比例
参考代码如下:
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
tep = Nowcoder.Achievement_value.sum()
print(Nowcoder[Nowcoder['Level']==7]['Achievement_value']/tep)
sum()求和函数的用法是放在后面
- DA22 牛客网用户最高的正确率
参考代码如下:
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
tep1 = Nowcoder[Nowcoder['Num_of_exercise'] > 10]
tep2 = (tep1['Num_of_exercise']/tep1['Number_of_submissions']).round(3).max()
print(tep2)
别忘了是求最大值,所以要加上max()
- DA23 统计牛客网用户的名字长度
参考代码:
import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
print(Nowcoder.Name.str.len())
解析: Pandas str.len()方法
用于确定Pandas系列中每个字符串的长度。此方法仅适用于一系列字符串。
由于这是一个字符串方法,因此必须在每次调用.str之前添加前缀。否则会产生错误。 其他两种方法:
print(Nowcoder.Name.apply(lambda x : len(x)))
print(Nowcoder.Name.map(lambda x : len(x)))