pandas中DataFrame的values属性、数据聚合之agg方法

pandas 的 DataFrame对象,知道它们由三个组成并存储为属性的组件很有用:

. values:对应的二维NumPy值数组。
. columns:列索引:列名称。
. index:行的索引:行号或行名。

其中value属性我一直搞混淆
下面出一个示例:

原始的DataFrame

在这里插入图片描述而其中的value属性的值为:

在这里插入图片描述

数据聚合之agg方法

agg方法常用于定于自己的聚合函数
在这里插入图片描述

例如我们想对数据做极差,官方没有提供极差计算的函数,利用agg方法

pd['Math'].agg(lambda x:x.max()-x.min())

指定哪些函数作用哪些列

pd.agg({'Math':['mean','max'],'Height': 'var'})

在这里插入图片描述

同时使用多个聚合函数

pd.agg(['mean','max','min'])

总之.agg函数的灵活性很大,便于我们利用。

<think>好的,我需要详细介绍一下Pythonpandas库的DataFrame类的属性方法。首先,我应该回忆一下自己使用DataFrame的经验,以及pandas的官方文档内容。用户可能希望了解DataFrame的核心属性和常用方法,以便更好地处理数据。 首先,DataFrame是二维的表格型数据结构,类似于Excel表格或SQL表。属性方面,我记得有shape、columns、index、dtypes这些基本属性。shape返回行数和列数,columns是列名,index是行标签,dtypes是每列的数据类型。需要确认这些属性的具体描述是否正确,有没有遗漏重要的属性,比如values或者T(转置)? 然后是方法部分,常用方法包括数据查看(head、tail、describe)、数据清洗(dropna、fillna)、数据筛选(loc、iloc、query)、排序(sort_values、sort_index)、分组聚合(groupby、agg)、合并连接(merge、concat、join)、统计计算(mean、sum、count)以及IO操作(read_csv、to_csv)等。需要分类整理这些方法,确保覆盖主要功能,同时解释清楚每个方法的用途和参数示例。 可能还需要提到一些高级方法,比如pivot_table用于数据透视,apply用于应用函数,以及处理缺失值的方法。要注意避免过于深入细节,但又要足够详细,让用户有全面的了解。同时,是否需要给出示例代码?用户的问题中没有明确要求,但适当举例可能帮助理解。 需要检查是否有错误,比如属性中的values是否返回ndarray,T是否正确。方法中是否遗漏了重要的如rename、replace、drop_duplicates等。另外,时间序列处理相关的方法是否需要提及?可能根据用户需求,但基础介绍中可以暂时省略。 最后,组织内容结构,先介绍属性,再分类介绍方法,每个部分用子标题分开,使用列表和代码块(如果允许的话)来清晰展示。确保语言简洁明了,符合中文表达习惯,避免专业术语使用过多导致理解困难。</think>以下是关于pandas库中DataFrame类的核心属性和常用方法的详细介绍: --- ### 一、DataFrame核心属性 1. **shape** 返回数据框的维度(行数, 列数) ```python df.shape # 输出 (5, 3) 表示5行3列 ``` 2. **columns** 获取/设置列名列表 ```python df.columns = ['A', 'B', 'C'] # 修改列名 ``` 3. **index** 获取/设置行索引(行标签) ```python df.index = pd.date_range('20230101', periods=5) # 设置日期索引 ``` 4. **dtypes** 查看每列的数据类型 ```python print(df.dtypes) # 输出各列的dtype ``` 5. **values** 将数据转换为NumPy数组 ```python arr = df.values # 得到一个二维ndarray ``` 6. **T** 快速转置数据(行列互换) ```python df_transposed = df.T ``` --- ### 二、常用方法分类 #### 1. 数据查看 - **head(n)** / **tail(n)** 查看前/后n行(默认5行) ```python df.head(3) ``` - **describe()** 生成数值型列的统计摘要(均值、标准差等) ```python df.describe() ``` - **info()** 显示数据概览(列名、非空值数量、数据类型) ```python df.info() ``` --- #### 2. 数据清洗 - **dropna()** 删除包含缺失值的行/列 ```python df.dropna(axis=1) # 删除有空值的列 ``` - **fillna(value)** 填充缺失值 ```python df.fillna(0) # 用0填充空值 ``` - **drop_duplicates()** 删除重复行 ```python df.drop_duplicates(subset=['col1']) ``` --- #### 3. 数据选择 - **loc[]** 按标签选择数据 ```python df.loc[2:4, ['A','B']] # 选择2-4行,A/B列 ``` - **iloc[]** 按位置索引选择数据 ```python df.iloc[1:3, 0:2] # 选择1-2行(前闭后开),前两列 ``` - **query()** 条件查询 ```python df.query('Age > 30 & Salary < 5000') ``` --- #### 4. 数据操作 - **sort_values()** 按值排序 ```python df.sort_values('Salary', ascending=False) ``` - **groupby()** 分组聚合 ```python df.groupby('Department')['Sales'].sum() ``` - **merge()** 类似SQL JOIN操作 ```python pd.merge(df1, df2, on='key') ``` --- #### 5. 数据计算 - **apply(func)** 应用函数处理数据 ```python df['Age'].apply(lambda x: x+1) # 年龄列全体+1 ``` - **pivot_table()** 创建透视表 ```python pd.pivot_table(df, values='Sales', index='Region') ``` - **corr()** 计算列之间的相关系数矩阵 --- #### 6. 文件读写 - **read_csv()** / **to_csv()** CSV文件读写 ```python pd.read_csv('data.csv', encoding='utf-8') df.to_csv('output.csv', index=False) ``` --- ### 三、进阶特性 - **时间序列处理** 通过`resample()`重采样、`asfreq()`频率转换等方法处理时间数据 - **内存优化** 使用`astype()`转换数据类型减少内存占用 ```python df['ID'] = df['ID'].astype('int32') ``` - **样式渲染** 通过`style`属性实现条件格式化显示 ```python df.style.highlight_max(color='yellow') ``` --- 掌握这些属性方法可覆盖90%的日常数据处理需求。建议配合官方文档和实际数据集练习以加深理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值