pandas.Series.rank用法详解

本文介绍了Pandas库中Series.rank()方法的使用方法及参数含义,并通过实例演示了如何利用该方法对数据进行排名处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在看《Python数据分析实战》的时候发现了一个方法pandas.Series.rank()当时没有看明白,后来看了文档又结合着例子看懂了(其实超级简单,但是人的脑子有的时候就是有问题吧!一时半会儿转不过来弯儿,2333,可能因为我是傻逼吧) 照例,我们还是先来看看文档: pandas.Series.rank

Series.*rank(axis=0, method='average', numeric_only=None, na_option='keep', ascending=True, pct=False)*

Compute numerical data ranks (1 through n) along axis. Equal values are assigned a rank that is the average of the ranks of those values

我把这个方法称为排位序,就跟考试成绩排第一第二是相同的意思,我们先来看一段代码:

>>> import pandas as pd
>>> ser = pd.Series([5, 0, 3, 8, 4], index=['blue', 'red', 'yellow', 'white', 'green'])
>>> ser
blue      0
red       5
yellow    3
white     8
green     4
dtype: int64
>>> ser.rank()
red       4.0
blue      1.0
yellow    2.0
white     5.0
green     3.0
dtype: float64
>>> ser.rank(ascending=False)
blue      2.0
red       5.0
yellow    4.0
white     1.0
green     3.0
dtype: float64
复制代码

我们这里定义了一个pandas.Series,这个Seriesindex'blue', 'red', 'yellow', 'white', 'green'对应的数值分别为5, 0, 3, 8, 4,当我们调用pandas.Series.rank方法时可以看到这个Series按照index所对应的数值的大小进行了排位序,从1.05.0。当我们将参数ascending设置为False的时候就按照index的本身的顺序显示rank啦!至于别的参数怎么设置,可以设置成什么,你们就去文档里面看吧,嘻嘻! 今天的代码可以在我的Github里找到,如果文章中或者代码中有什么错误还请大家不吝赐教,批评指正!感谢!

### Pandas Series 的使用方法和属性 #### 创建 Series 对象 可以通过多种方式创建 `pandas.Series` 对象。最常见的方式是从 Python 字典或列表创建。 ```python import pandas as pd # 从字典创建 data_dict = {'语文': 100, '数学': 150} series_from_dict = pd.Series(data=data_dict) # 从列表创建 data_list = [30, 40, 50] series_from_list = pd.Series(data_list) ``` #### 查看 Series 属性 一旦创建了 `Series` 对象,可以访问其多个有用属性来获取有关该对象的信息: - **shape**: 返回系列的形状,即元素的数量元组形式。 ```python series_shape = series_from_dict.shape # 输出: (2,) ``` - **size**: 获取序列中元素的总数目。 ```python element_count = series_from_dict.size # 输出: 2 ``` - **index**: 访问索引标签。 ```python index_labels = series_from_dict.index # 输出: Index(['语文', '数学'], dtype='object') ``` - **values**: 提取底层数值数组。 ```python underlying_array = series_from_dict.values # 输出: array([100, 150]) ``` - **name**: 设置或返回整个序列的名字。 ```python named_series = pd.Series({'Hobby': 'Basketball', 'Age': 30}, name='Jack') print(named_series.name) # 输出: Jack ``` #### 数据操作与统计分析 除了基础属性外,`Series` 还支持一系列强大的内置函数来进行数据处理和统计计算: - **describe()**: 自动生成描述性统计数据摘要[^1]。 ```python summary_statistics = series_from_list.describe() ``` - **unique()**: 取得唯一的值作为 NumPy 数组返回。 ```python unique_values = series_from_list.unique() ``` 通过掌握这些核心概念和技术细节,能够更高效地利用 `pandas.Series` 来完成各种数据分析任务。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值