Pandas之unique和nunique傻傻分不清楚

同样是返回数据中的唯一值, unique 返回的是唯一值的数组, nunique 返回的所有唯一值的总和。

在这里插入图片描述

<think>好的,用户想了解Pandas库中Series的使用方法属性。首先,我需要回忆一下Series的基本概念,它是Pandas中的一维数据结构,类似于带标签的数组。接下来,用户可能想知道如何创建Series,以及常用的属性方法有哪些。 首先,创建Series可以通过列表、字典或者NumPy数组。例如,使用pd.Series(data, index)来创建,其中index参数可选,如果没有指定,默认是0开始的整数索引。需要举几个例子,比如从列表创建从字典创建的区别,特别是当使用字典时,键会自动成为索引。 然后,常用属性方面,用户可能关心values、index、dtype、name、shape这些。比如values返回数组形式的数据,index获取索引对象,dtype查看数据类型,name是Series的名称,shape返回形状。这里需要确保每个属性都解释清楚,并给出示例代码片段。 接下来是常用方法,比如head()tail()查看数据的前几行或后几行,isnull()notnull()检测缺失值,sort_values()sort_index()进行排序,describe()生成统计摘要,unique()获取唯一值,value_counts()统计频数,apply()应用函数。每个方法都需要简要说明用途,并给出示例代码。 此外,用户可能还想知道Series的索引切片操作,比如使用位置或标签索引,以及布尔索引。这部分需要说明如何使用.loc.iloc,以及直接通过标签或位置访问数据的方法。 还需要注意用户提供的引用内容,比如引用[1]提到了describe()unique()方法,引用[2]提到了shape属性创建方法。需要将这些引用内容自然地融入到回答中,并在适当的位置添加引用标识。 最后,考虑到用户可能对实际应用场景感兴趣,可以简要提及Series在数据分析中的常见用途,比如数据清洗、统计分析等。同时,生成的相关问题需要围绕Series的更多细节,如处理缺失值、统计方法、与DataFrame的交互等,帮助用户进一步学习。</think>### Pandas Series 使用方法及属性详解 #### 一、Series 的创建 Pandas Series 是一种一维数据结构,可存储任意数据类型(整数、字符串、浮点数、Python对象等),并带有标签(索引)。以下是常见的创建方式: 1. **从列表创建** ```python import pandas as pd data = [10, 20, 30, 40] s = pd.Series(data, name="MySeries") ``` 2. **从字典创建** 字典的键会自动成为索引: ```python data = {'a': 10, 'b': 20, 'c': 30} s = pd.Series(data) ``` 3. **指定索引** 自定义索引会覆盖默认的整数索引: ```python s = pd.Series([10, 20, 30], index=['x', 'y', 'z']) ``` --- #### 二、常用属性 1. **`values`**:返回数据的 NumPy 数组形式 ```python print(s.values) # 输出: [10 20 30] ``` 2. **`index`**:获取索引对象 ```python print(s.index) # 输出: Index(['x', 'y', 'z'], dtype='object') ``` 3. **`dtype`**:查看数据类型 ```python print(s.dtype) # 输出: int64 ``` 4. **`name`**:Series 的名称 ```python s.name = "MyData" ``` 5. **`shape`**:返回形状元组 ```python print(s.shape) # 输出: (3,)[^2] ``` --- #### 三、常用方法 1. **`head(n)` / `tail(n)`** 查看前/后 `n` 行数据(默认 `n=5`): ```python s.head(2) # 输出前两行 ``` 2. **`isnull()` / `notnull()`** 检测缺失值(`NaN`): ```python s = pd.Series([1, None, 3]) print(s.isnull()) # 输出布尔值数组 ``` 3. **`sort_values()` / `sort_index()`** 按值或索引排序: ```python s.sort_values(ascending=False) # 降序排列 ``` 4. **`describe()`** 生成统计摘要(计数、均值、标准差等)[^1]: ```python print(s.describe()) ``` 5. **`unique()`** 获取唯一值数组[^1]: ```python s = pd.Series([1, 2, 2, 3]) print(s.unique()) # 输出: [1 2 3] ``` 6. **`value_counts()`** 统计唯一值频次: ```python print(s.value_counts()) # 输出: 2→2次, 1→1次, 3→1次 ``` 7. **`apply(func)`** 应用自定义函数: ```python s.apply(lambda x: x**2) # 计算平方 ``` --- #### 四、索引与切片 1. **标签索引** ```python print(s['x']) # 输出索引为'x'的值 → 10 ``` 2. **位置索引** ```python print(s.iloc[1]) # 输出第2个值 → 20 ``` 3. **布尔索引** ```python print(s[s > 15]) # 输出值大于15的元素 ``` --- #### 五、应用场景示例 - **数据清洗**:通过 `isnull()` 定位缺失值,结合 `fillna()` 填充。 - **统计分析**:使用 `describe()` 快速获取数据分布[^1]。 - **数据转换**:通过 `apply()` 实现自定义逻辑(如单位换算)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值