Python学习第二十六天,Pandas学习(八)

121 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第26天,点击查看活动详情

数据排名

使用DataFrame的rank方法

df.rank(axis=0,method=‘average"’,ascending=True,na_option=‘keep’)
axis:轴,0表示行,1表示列,默认按行排序
method:表示在具有相同值的情况下所使用的排序方法,有average:默认值,平均排序、min:最小值排名、max:最大值排名、first:按值在原始数据中的出现的顺序分配排名、dense:密集排名,类似最小值排名,排名相同的数据只占一个名次
na_option:空值的排序方式,有keep:保留、top:如果升序,将最小排名赋给NaN、bottom:最大升序,将最大排名赋给NaN

举例:

import pandas as pd
data = [[75, 56, 80], [56, 45, 50], [60, 67, 67]]
index = ['张三', '李四', '王五']
columns = ['数学', '语文', '英语']
df = pd.DataFrame(data=data, index=index, columns=columns)
print(df)
df["语文排名"]=df["语文"].rank(method='min',ascending=False)
print(f"根据语文成绩排名:\n{df}")

结果:

image.png

数据运算的常用函数

函数说明
求和:sum([axis,skipna])axis=1表示按行加,axis=0表示按列加,默认列加skipna=1表示将NaN转0, skipna=0表示不转
求均值:mean([axis,skipna])
最大值:max([axis,skipna])
最小值:min([axis,skipna])
中位数:media(axis=None,skipna=None)axis=1表示行, axis=0表示列,默认为None;skipna布尔值,表示计算结果是否排除了NaN/Null,默认为True
求众数:mode(axis=0,dropna=True)axis=1表示行, axis=0表示列,默认值为0,dropna是否删除缺失值,布尔型,默认为True
求方差:var(axis=None,skipna=None)
标准差:std(axis=None,skipna=None)
分位数:quantile(q=0.5,axis=0, numeric_only=True)numeric_only的值为False,将计算日期、时间和时增量数据的分位数

这些都是比较常用的处理数据函数。