pandas 不常用函数说明

本文介绍了Pandas库中Index.get_level_values方法的使用,该方法用于从MultiIndex获取单个级别的值。此外,还详细解释了stack和unstack操作的区别及应用场景,并介绍了时间序列数据处理中的resample方法,包括其参数说明和示例。

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

- get_level_values

用法:

Index.get_level_values(level)

返回请求级别的值索引。

这主要用于从 MultiIndex 获取单个级别的值,但在 Index 上也提供了兼容性。

参数:
level:整数或字符串
它是整数位置或级别的名称。

返回:
index

调用对象,因为索引中只有一层。

注意:
对于索引,级别应为 0,因为没有多个级别。

例子:

>>> idx = pd.Index(list('abc'))
>>> idx
Index(['a', 'b', 'c'], dtype='object')

通过提供 level 作为整数来获取级别值:

>>> idx.get_level_values(0)
Index(['a', 'b', 'c'], dtype='object')

- unstack

statck(堆叠):该操作会“旋转”或将列中的数据透视到行,即将原来的列转成最内层的行索引
unstack(拆堆):该操作会将行中的数据透视到列,即将最内层的行索引变成列

例子:

data:

number	   one two three
state			
Ohio	    0	1	2
Colorado	3	4	5
  1. stack
result = data.stack()

result:

state     number
Ohio      one       0
          two       1
          three     2
Colorado  one       3
          two       4
          three     5
dtype: int32
  1. unstack
result.unstack()

输出结果:

number	   one two three
state			
Ohio	    0	1	2
Colorado	3	4	5

resample

  • resample()进行重采样。

  • 重采样(Resampling)指的是把时间序列的频度变为另一个频度的过程。把高频度的数据变为低频度叫做降采样(downsampling),把低频度变为高频度叫做升采样(upsampling)

resample参数如下:

resample(rule, how=None, axis=0, fill_method=None, closed=None, label=None, convention='start',kind=None, loffset=None, limit=None, base=0)

降采样
考虑因素:

各区间哪边是闭合的(参数:closed)

如何标记各聚合面元,用区间的开头还是末尾(参数:label)

freq取值如下:
在这里插入图片描述

In [235]: ts.resample('5min').sum()
Out[235]:
2018-08-03 00:00:00    10
2018-08-03 00:05:00    35
2018-08-03 00:10:00    21
Freq: 5T, dtype: int32
<think>嗯,用户想了解Pandas库中的常用函数及其用法。首先,我需要整理一些最常用函数,比如数据读取、数据查看、数据清洗、数据处理、数据合并分组和输出等同类别。根据用户提供的引用内容,他们之前提到过read_excel、merge、replace、str.contains和isin这些函数,所以在回答中应该优先包含这些,并参考引用的例子。 比如,引用[1]中提到了pd.read_excel和获取列标题,引用[2]详细说明了merge函数的参数,引用[3]展示了replace的用法,引用[4]提到了str.contains和isin的使用。我需要将这些信息整合到各个函数的具体用法中,确保正确引用对应的示例。 接下来,我需要检查每个函数的语法是否正确,比如确保使用$...$包裹行内数学表达式,比如在描述参数时是否有需要公式的地方。Pandas函数主要涉及数据处理,可能数学表达式多,但如果有的话,比如描述某种计算,需要注意格式。 然后,要按功能分类这些函数,让结构清晰。用户可能需要从基础的数据读取到更高级的操作逐步了解。每个函数给出用途、语法示例和注意事项,这样用户更容易理解。 同时,用户要求生成相关问题,我需要考虑他们可能进一步想知道的内容,比如如何选择同的函数,常见错误处理,或者性能优化等。比如,引用[2]中的merge函数,可以联想到同合并方式的区别;引用[4]中的筛选方法,可能引出模糊匹配和精确匹配的比较问题。 需要确保回答使用中文,语法正确,并且引用标识自然添加在相关段落末尾。例如,在讲解read_excel时引用[1],讲解merge时引用[2],replace引用[3],筛选方法引用[4]。 最后,检查是否覆盖了用户的需求,有没有遗漏的重要函数,比如dropna、fillna、groupby、agg等常用函数,并确保每个部分都参考了用户提供的引用内容,但过度依赖,因为用户提到引用仅供参考,需结合他们的问题和之前的回答。可能用户之前的问题涉及数据处理,所以需要强调数据清洗和处理的函数。</think>### Pandas常用函数及用法详解 #### 一、数据读取与写入 1. **`pd.read_csv()` / `pd.read_excel()`** - **用途**:读取CSV/Excel文件生成DataFrame - **语法示例**: ```python data = pd.read_excel("file.xlsx", sheet_name="Sheet1") # 引用[1] ``` - **关键参数**:`sheet_name`(Excel分页名)、`encoding`(编码格式)、`header`(标题行) 2. **`to_csv()` / `to_excel()`** - **用途**:将DataFrame保存为文件 - **示例**: ```python df.to_excel("output.xlsx", index=False) # 取消索引列 ``` --- #### 二、数据查看与筛选 1. **`head()` / `tail()`** - **用途**:查看前/后N行数据 - **示例**:`df.head(5)` 显示前5行 2. **`df[df['列名'].str.contains('关键词')]`** - **用途**:模糊筛选包含特定文本的行 - **示例**: ```python filtered = df[df['Name'].str.contains('测试')] # 引用[4] ``` 3. **`df[df['列名'].isin([列表])]`** - **用途**:精确匹配指定值的行 - **示例**: ```python filtered = df[df['Status'].isin(['完成', '已审核'])] # 引用[4] ``` --- #### 三、数据清洗与处理 1. **`dropna()` / `fillna()`** - **用途**:删除缺失值/填充缺失值 - **示例**: ```python df.dropna(subset=['Age']) # 删除Age列缺失的行 df['Salary'].fillna(0, inplace=True) # 用0填充缺失值 ``` 2. **`replace()`** - **用途**:替换指定值 - **示例**: ```python df.replace({'Male': 'M', 'Female': 'F'}, inplace=True) # 引用[3] ``` 3. **`apply()`** - **用途**:对列或行应用自定义函数 - **示例**: ```python df['Price'] = df['Price'].apply(lambda x: x * 1.1) # 价格增加10% ``` --- #### 四、数据合并与分组 1. **`merge()`** - **用途**:合并两个DataFrame(类似SQL JOIN) - **语法示例**: ```python merged = pd.merge(df1, df2, on='ID', how='left') # 引用[2] ``` - **关键参数**:`on`(关联字段)、`how`(合并方式) 2. **`groupby()` + `agg()`** - **用途**:分组聚合统计 - **示例**: ```python df.groupby('Department').agg({'Sales': 'sum', 'Employees': 'count'}) ``` --- #### 五、其他高频函数 | 函数 | 用途 | 示例 | |--------------------|-----------------------------|---------------------------------------| | `pivot_table()` | 生成透视表 | `df.pivot_table(values='销售额', index='地区')` | | `sort_values()` | 按列排序 | `df.sort_values('Date', ascending=False)` | | `rename()` | 重命名列名 | `df.rename(columns={'old':'new'})` | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唐大帅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值