开启掘金成长之旅!这是我参与「掘金日新计划 · 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}")
结果:
数据运算的常用函数
| 函数 | 说明 |
|---|---|
| 求和: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,将计算日期、时间和时增量数据的分位数 |
这些都是比较常用的处理数据函数。