【基础】Pandas库基础操作:数据清洗与数据重塑
发布时间: 2024-06-24 14:54:05 阅读量: 84 订阅数: 143
Python数据分析入门:Pandas库详细教程与应用
![【基础】Pandas库基础操作:数据清洗与数据重塑](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/441c7a450a9f41fa985b54f962d44f57~tplv-k3u1fbpfcp-zoom-in-crop-mark:1512:0:0:0.awebp)
# 1. Pandas库简介**
Pandas库是Python中用于数据处理和分析的强大工具。它提供了一系列灵活且高效的数据结构和操作,使数据科学家和分析师能够轻松地操作、清洗和分析数据。
Pandas库的核心数据结构是DataFrame,它是一个类似于表格的结构,其中数据按行和列组织。DataFrame提供了一系列方法来操作和转换数据,包括数据类型转换、缺失值处理、数据筛选和排序。此外,Pandas库还提供了数据透视表、数据分组和聚合等高级功能,使数据分析变得更加容易和高效。
# 2. 数据清洗
数据清洗是数据分析过程中至关重要的一步,它可以帮助我们去除数据中的错误、不一致和缺失值,从而确保后续分析的准确性和可靠性。Pandas库提供了丰富的功能来帮助我们进行数据清洗,包括数据类型转换、缺失值处理、数据筛选、排序、去重和合并等。
### 2.1 数据类型转换和处理
#### 2.1.1 数据类型的检测和转换
在数据清洗过程中,首先需要检测数据类型并进行必要的转换。Pandas库提供了`dtypes`属性来获取数据框中每一列的数据类型,并提供了`astype()`方法来转换数据类型。
```python
import pandas as pd
# 创建一个数据框
df = pd.DataFrame({
"name": ["John", "Mary", "Bob"],
"age": [20, 25, 30],
"salary": [1000, 2000, 3000]
})
# 获取数据框中的数据类型
print(df.dtypes)
# 将"age"列转换为浮点型
df["age"] = df["age"].astype(float)
# 再次获取数据框中的数据类型
print(df.dtypes)
```
输出:
```
name object
age int64
salary int64
dtype: object
name object
age float64
salary int64
dtype: object
```
#### 2.1.2 缺失值处理
缺失值是数据清洗中常见的挑战。Pandas库提供了多种方法来处理缺失值,包括删除缺失值、填充缺失值或使用缺失值指示符。
```python
# 删除缺失值
df.dropna()
# 填充缺失值
df.fillna(0)
# 使用缺失值指示符
df.isnull()
```
### 2.2 数据筛选和排序
#### 2.2.1 基于条件的筛选
基于条件的筛选可以帮助我们从数据框中选择满足特定条件的行或列。Pandas库提供了`query()`方法和`loc()`方法来进行基于条件的筛选。
```python
# 使用query()方法筛选出age大于25的行
df.query("age > 25")
# 使用loc()方法筛选出name为"John"的行
df.loc[df["name"] == "John"]
```
#### 2.2.2 数据排序
数据排序可以帮助我们对数据框中的数据进行排序,从而便于查看和分析。Pandas库提供了`sort_values()`方法来对数据框中的数据进行排序。
```python
# 对数据框按age列进行升序排序
df.sort_values("age")
# 对数据框按age列进行降序排序
df.sort_values("age", ascending=False)
```
### 2.3 数据去重和合并
#### 2.3.1 数据去重
数据去重可以帮助我们从数据框中删除重复的行。Pandas库提供了`drop_duplicates()`方法来进行数据去重。
```python
# 删除数据框中的重复行
df.drop_duplicates()
```
#### 2.3.2 数据合并
数据合并可以帮助我们将两个或多个数据框合并在一起。Pandas库提供了`merge()`方法来进行数据合并。
```python
# 创建两个数据框
df1 = pd.DataFrame({
"name": ["John", "Mary", "Bob"],
"age": [20, 25, 30]
})
df2 = pd.DataFrame({
"name": ["John", "Mary"],
"salary": [1000, 2000]
})
# 将两个数据框合并在一起
df1.merge(df2, on="name")
```
# 3.1 数据透视表
**3.1.1 数据透视表的创建和使用**
数据透视表是一种强大的工具,用于对数据进行汇总和聚合。它可以帮助我们快速了解数据中的模式和趋势,并识别有意义的见解。
要创建数据透视表,我们可以使用 Pandas 的 `pivot_table()` 函数。该函数接受以下参数:
- `data`:要创建透视表的 DataFrame
- `index`:要作为行索引的列
- `columns`:要作为列索引的列
- `values`:要聚合的值
-
0
0