pandas的统计函数记录

本文介绍了Pandas库中pct_change()函数用于计算百分比变化以及rank()函数在处理数据排名时的不同用法,包括axis参数的选择,如如何对列和行进行操作,以及rank()方法如average、min、max和first的具体应用。

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

1.环比百分比函数:pct_change(),一般对列进行操作,如需对行进行操作需注明axis=1

import pandas as pd
import numpy as np
s=pd.Series([1,2,3,4,5])
print(s.pct_change().round(2))#使用round函数限制小数位保留

结果:

2.排名函数:rank(),返回一个包含原序列元素值和名次的序列,默认当元素相同时返回平均排名

import pandas as pd
import numpy as np
s=pd.Series(np.random.rand(5),index=list('abcde'))
s['a']=s['b']#当a和b的值相同时
print(s.rank())

输出的结果:

按照参数指标进行选择时:
method=(average、min、max、first)分别为平均排名、相同数据分配最小排名、相同数据分配最大排名、相同数据根据出现在数组中的顺序进行排名

import pandas as pd
import numpy as np
a = pd.DataFrame(np.arange(12).reshape(3,4),columns = list("abdc"))
a =a.sort_index(axis=1,ascending=False)
a.iloc[[1,1],[1,2]] = 6
#按行:将相同元素的排名设置为所在行数值的最大排名
print(a.rank(axis=1,method="max"))

输出的结果:

### Pandas基本函数及其用法 Pandas 是一种强大的数据分析工具库,广泛应用于数据处理和分析领域。以下是几个常用的基本函数以及它们的具体用法。 #### 1. `pandas-log` 的功能介绍 为了更好地理解 Pandas 中的操作行为,可以借助第三方扩展包 **pandas-log** 来提供操作反馈日志[^1]。该工具通过封装常见的 Pandas 函数,在执行过程中记录额外的日志信息,帮助开发者更清晰地追踪每一步的数据变化过程。 安装方式如下: ```bash pip install git+https://gitcode.com/gh_mirrors/pa/pandas-log.git ``` 使用示例: ```python import pandas as pd from pandas_log import log_dataframe_operations df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) log_df = log_dataframe_operations(df) # 执行任意 Pandas 操作时会自动打印日志 filtered_df = log_df[log_df['A'] > 1] print(filtered_df) ``` --- #### 2. 遍历 DataFrame 行的方法——`iterrows()` 和其他替代方案 Pandas 提供了多种方法用于遍历 DataFrame 数据中的行,其中最常见的是 `iterrows()` 方法[^2]。它能够逐行返回索引和对应的 Series 对象。然而需要注意的是,由于其性能较低,通常不推荐在大规模数据集上频繁调用此方法。 代码示例: ```python import pandas as pd data = {'Column_A': ['X', 'Y'], 'Column_B': [10, 20]} df = pd.DataFrame(data) for idx, row in df.iterrows(): print(f"Index: {idx}, Row Data: {row}") ``` 除了 `iterrows()` 外,还有更高效率的选择比如 `itertuples()` 或者基于向量化运算的 `apply()` 方法。这些方法更适合于需要高性能计算场景下的应用需。 --- #### 3. 统计描述性信息——`describe()` 函数 对于初步探索数据分布情况而言,`describe()` 是非常实用的一个内置统计汇总命令[^3]。它可以快速生成数值型字段的关键指标(如均值、标准差等),同时也支持自定义参数调整输出范围。 实例演示: ```python sample_data = { 'Scores': [85, 90, None], 'Hours_Studied': [5, 7, 6] } frame = pd.DataFrame(sample_data) summary_stats = frame.describe() print(summary_stats) ``` 注意:如果目标是非数值类型的列,则需显式指定包含选项才能获取相应频率统计等内容。 --- #### 4. 修改列名大小写形式 有时我们可能希望统一表头命名风格以便后续加工处理更加方便一致化管理。下面展示如何利用列表推导表达式实现将现有所有列的名字转换成首字母大写的样式: 样例脚本: ```python raw_columns = ["first_name", "last_name"] cleaned_cols = [col.capitalize() for col in raw_columns] example_dataset = pd.DataFrame({ "first_name": ["John"], "last_name": ["Doe"] }) example_dataset.columns = cleaned_cols print(example_dataset.head()) ``` 上述逻辑同样适用于批量重命名复杂模式匹配条件下多级索引结构等情况。 --- #### 5. 布尔索引筛选特定条件子集 布尔掩码技术允许用户依据某些预设规则轻松提取满足要的部分记录集合出来单独查看或者进一步深入挖掘潜在规律特性。具体做法就是先创建一个与原始表格形状相同的 True/False 数组作为过滤器作用到原对象之上即可完成整个流程自动化构建工作流简化步骤提升工作效率减少人为错误发生几率增加程序可读性和维护便利程度等方面都有显著优势体现价值所在之处值得推广普及开来让更多人受益匪浅! 简单例子说明如下所示: ```python criteria_mask = (frame['Scores'] >= 88) & (~pd.isnull(frame['Hours_Studied'])) qualified_records = frame.loc[criteria_mask] print(qualified_records) ``` 这里特别强调一点即当涉及到多个并联关系组合查询语句编写时候记得合理运用括号分隔开各个部分优先顺序从而避免语法解析歧义现象产生影响最终结果准确性造成不必要的麻烦困扰等问题出现。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值