Pandas 数据结构之 DataFrame使用教程

本文介绍了Pandas的DataFrame数据结构,包括其特性、实例化方法及行数据和列数据的选择。详细讲解了按位置、索引值、条件选择行数据,并展示了列数据的选择操作。

DataFrame 简介

DataFrame是Pandas中的一个表格型的数据结构,包含一组有序的列,每列的值的类型都可不同(整型、浮点型、布尔型、字符串等),DataFrame既有行索引也有列索引,可以被看作是由Series组成的字典

DataFrame也可以理解为带了行和列标签的二维数组:

在这里插入图片描述

其中行标签为序号 0,1,2,列标签为 Name, Age, Sex. DataFrame 是最常用的Pandas对象, 与Series一样,DataFrame支持多种类型的输入数据:

  • 列表、一维ndarray、字典、Series字典
  • 二维ndarray
  • Series
  • DataFrame

除了数据,还可以有选择地传递 index(行标签)和 columns(列标签)参数。传递了index或clolumns,就可以确保生成的 DataFrame 里包有索引或列。Series 字典加上指定索引时,会丢弃与传递的索引不匹配的所有数据。

没有传递轴标签时,按常规依据输入数据进行构建。

DataFrame 实例化

DataFrame 可以使用字典、列表等实例化。

如果传入的数据全部是标量值(譬如字典:{‘a’:1, ‘b’:2}),那么必须传入index参数

df = pd.DataFrame({
   
   
    'name': ['lihua', 'lilei', 'hanmeimei', 'xiaoming', 'xiaohong'],
    'math': [99, 100, 80, 50, 118],
    'english': [94, 83, 99, 79, 108],
    'chinese': [107, 82, 76, 100, 113]
})
Output:
        name  math  english  chinese
0      lihua    99       94      107
1      lilei   100       83       82
2  hanmeimei    80       99       76
3   xiaoming    50       79      
### 介绍 Pandas DataFrame 数据结构 PandasPython 中用于数据操作和分析的核心库之一,其中最常用的数据结构是 **DataFrame**。DataFrame 可以看作是一个二维的表格型数据结构,类似于 Excel 表格或 SQL 数据库中的表,具有行和列的标签。这种结构非常适合处理现实世界中的结构化数据集,例如 CSV 文件、数据库表或时间序列数据。 使用 `type()` 函数可以查看数据的类型。当从 CSV 文件读取数据时,数据通常会以 DataFrame 的形式加载,其类型为 `<class 'pandas.core.frame.DataFrame'>` [^4]。 DataFrame 的基本特性包括: - 每一列可以存储不同的数据类型(如整数、浮点数、字符串等)。 - 支持带有标签的行索引和列名。 - 提供了强大的数据操作功能,包括数据筛选、聚合、合并和重塑。 ### 常用属性和方法 在操作 DataFrame 时,以下是一些常用的属性和方法: - **`df.columns`**:获取列名,返回一个 `Index` 对象,例如 `Index(['Name', 'Age', 'Score'])` [^5]。 - **`df.index`**:获取行索引,返回一个 `RangeIndex` 或其他索引类型对象,例如 `RangeIndex(start=0, stop=3)` [^5]。 - **`df.shape`**:获取 DataFrame 的形状,返回一个元组,表示行数和列数,例如 `(3, 3)` 。 - **`df.dtypes`**:获取每列的数据类型,返回一个 Series,例如 `Name: object, Age: int64, Score: float64` [^5]。 - **`df.head(n)`**:显示前 `n` 行数据,常用于快速查看数据集的前几行,默认显示前 5 行 [^5]。 - **`df.describe()`**:生成统计摘要,包括每列的均值、标准差、最小值、最大值以及四分位数等统计信息 。 ### 数据清洗与处理 DataFrame 在数据清洗中发挥着重要作用。数据清洗包括处理缺失值、异常值、重复值和进行类型转换等,以确保数据质量并支持后续分析 [^2]。 #### 处理缺失值 可以使用 `df.isnull()` 或 `df.isna()` 来检测缺失值,并通过 `df.dropna()` 或 `df.fillna()` 方法进行处理: - **`df.dropna()`**:删除包含缺失值的行或列。 - **`df.fillna(value)`**:用指定的值(如 0 或平均值)填充缺失值。 #### 处理重复值 使用 `df.duplicated()` 可以检测重复行,而 `df.drop_duplicates()` 可以删除重复数据。 #### 类型转换 可以通过 `df.astype('type')` 将某一列转换为指定的数据类型,例如将字符串转换为整数。 #### 异常值检测 可以使用 `df.describe()` 查看数据的统计摘要,从而识别可能的异常值。此外,也可以通过条件筛选(如 `df[df['column'] > threshold]`)来检测异常值。 ### DataFrame 运算 Pandas 支持对 DataFrame 进行各种运算,包括算术运算、逻辑运算和统计运算。在进行运算时,Pandas 会自动对齐索引。例如,在两个 DataFrame 相加时,只有当索引和列名都匹配时,才会执行加法操作: ```python result = df1 + df2 ``` 此操作将确保只有在行和列都匹配的情况下才会执行加法 [^3]。 ### 总结 PandasDataFrame 是数据科学和数据分析中的重要工具,提供了丰富的功能来处理和分析数据。通过掌握 DataFrame 的基本属性、数据清洗方法以及常见运算,用户可以更高效地进行数据预处理,为后续的数据分析和机器学习项目打下坚实基础 [^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值