Pandas从入门到精通

Pandas

一、Pandas简介

1.pandas是什么

Pandas是一个开源的数据分析和数据处理库,它是基于Python编程语言的

Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。

Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。

Pandas 主要引入了两种新的数据结构:DataFrameSeries。(重点就是学这两个数据结构

1.1 Series

Series:类似于一堆数组或列表,是由一组数据及其相关的数据标签(索引)构成。Series可以看作是DataFrame中的一列,也可以是单独存在的一堆数据结构。

pF6bvOP.png

1.2 DataFrame

DataFrame: 类似于一个二维表格,它是 Pandas 中最重要的数据结构。DataFrame 可以看作是由多个 Series 按列排列构成的表格,它既有行索引也有列索引,因此可以方便地进行行列选择、过滤、合并等操作。

pF6qiWj.png

DataFrame 可视为由多个 Series 组成的数据结构:

pF6qVO0.png

Pandas 提供了丰富的功能,包括:

  • 数据清洗:处理缺失数据、重复数据等。
  • 数据转换:改变数据的形状、结构或格式。
  • 数据分析:进行统计分析、聚合、分组等。
  • 数据可视化:通过整合 Matplotlib 和 Seaborn 等库,可以进行数据可视化。

2.Pandas应用

Pandas 在数据科学和数据分析领域中具有广泛的应用,其主要优势在于能够处理和分析结构化数据。

以下是 Pandas 的一些主要应用领域:

  • 数据清洗和预处理: Pandas被广泛用于清理和预处理数据,包括处理缺失值、异常值、重复值等。它提供了各种方法来使数据更适合进行进一步的分析。
  • 数据分析和统计: Pandas使数据分析变得更加简单,通过DataFrame和Series的灵活操作,用户可以轻松地进行统计分析、汇总、聚合等操作。从均值、中位数到标准差和相关性分析,Pandas都提供了丰富的功能。
  • 数据可视化: 将Pandas与Matplotlib、Seaborn等数据可视化库结合使用,可以创建各种图表和图形,从而更直观地理解数据分布和趋势。这对于数据科学家、分析师和决策者来说都是关键的。
  • 时间序列分析: Pandas在处理时间序列数据方面表现出色,支持对日期和时间进行高效操作。这对于金融领域、生产领域以及其他需要处理时间序列的行业尤为重要。
  • 机器学习和数据建模: 在机器学习中,数据预处理是非常关键的一步,而Pandas提供了强大的功能来处理和准备数据。它可以帮助用户将数据整理成适用于机器学习算法的格式。
  • 数据库操作: Pandas可以轻松地与数据库进行交互,从数据库中导入数据到DataFrame中,进行分析和处理,然后将结果导回数据库。这在数据库管理和分析中非常有用。
  • 实时数据分析: 对于需要实时监控和分析数据的应用,Pandas的高效性能使其成为一个强大的工具。结合其他实时数据处理工具,可以构建实时分析系统。

Pandas 在许多领域中都是一种强大而灵活的工具,为数据科学家、分析师和工程师提供了处理和分析数据的便捷方式。

二.Pandas安装

因为Pandas是一个基于python的库,所以我们需要安装Python,然后再通过Python的包管理工具pip安装Pandas。

pip install pandas

导入pandas一般使用别名pd代替:

import pandas as pd

一个简单的pandas实例:

import pandas as pd

data = {
  'name': ["Tom", "Nick", "Jane"],
  'age': [18, 24, 30],
  'gender': ["male", "male", "female"]
}

df = pd.DataFrame(data)
print(df)

pF6qx39.png

三.Pandas数据结构之Series

Pandas Series 类似表格中的一个列(column),类似于一维数组,可以保存任何数据类型。

3.1Series 特点:

  • 索引: 每个 Series 都有一个索引,它可以是整数、字符串、日期等类型。如果没有显式指定索引,Pandas 会自动创建一个默认的整数索引。
  • 数据类型: Series 可以容纳不同数据类型的元素,包括整数、浮点数、字符串等。

pF6bvOP.png

Series 是 Pandas 中的一种基本数据结构,类似于一维数组或列表,但具有标签(索引),使得数据在处理和分析时更具灵活性。

以下是关于 Pandas 中的 Series 的详细介绍: 创建 Series: 可以使用 pd.Series() 构造函数创建一个 Series 对象,传递一个数据数组(可以是列表、NumPy 数组等)和一个可选的索引数组。

pandas.Series(data, index, dtype, name, copy)

参数说明:

  • data:一组数据(ndarray)。
  • index:数据索引标签,如果不指定,默认从0开始。
  • dtype:数据类型,默认会自己判断。
  • name:设置名称。
  • copy:拷贝数据,默认是False
3.1.1 创建一个简单的Series实例:
import pandas as pd

a = [1, 2, 3, 4, 5, 6]

b = pd.Series(a)

print(b)

输出结果如下:

pF6L72d.png

从上图可知,如果没有指定索引,索引值就从0开始,我哦们可以根据索引值读取数据:

import pandas as pd

a = [1, 2, 3, 4, 5, 6]

b = pd.Series(a)

print(b[1])

输出结果如下:

2
3.1.2 我们可以指定索引值,如下实例:
import pandas as pd

people = ['Tom','Jack','Jason']

data = pd.Series(people, index = ['a','b','c'])

print(data)

输出结果如下:

pF6O0sI.png

根据索引值读取数据:

import pandas as pd

people = ['Tom','Jack','Jason']

data = pd.Series(people, index = ['a','b','c'])

print(data['a'])

输出结果如下:

Tom

我们也可以使用key/value对象,类似字典来创建Series:

import pandas as pd

people = {1: "Tome", 2: "Jack", 3: "Jason"}

data = pd.Series(people, index = [1, 2])

print(data)

输出结果如下:

pFcYsxK.png

3.1.3 设置 Series 名称参数:
import pandas as pd

people = {1: "Tome", 2: "Jack", 3: "Jason"}

data = pd.Series(people, index = [1, 2], name="People-Series-Test")

print(data)

输出结果如下:

pFcY6KO.png

3.2更多Series说明:

3.2.1 基本操作:
# 获取值
value = series[2]  # 获取索引为2的值

# 获取多个值
subset = series[1:4]  # 获取索引为1到3的值

# 使用自定义索引
value = series_with_index['b']  # 获取索引为'b'的值

# 索引和值的对应关系
for index, value in series_with_index.items():
    print(f"Index: {index}, Value: {value}")
3.2.2 基本运算:
# 算术运算
result = series * 2  # 所有元素乘以2

# 过滤
filtered_series = series[series > 2]  # 选择大于2的元素

# 数学函数
import numpy as np
result = np.sqrt(series)  # 对每个元素取平方根
3.2.3 属性和方法:
# 获取索引
index = series_with_index.index

# 获取值数组
values = series_with_index.values

# 获取描述统计信息
stats = series_with_index.describe()

# 获取最大值和最小值的索引
max_index = series_with_index.idxmax()
min_index = series_with_index.idxmin()

注意事项:

  • Series 中的数据是有序的。
  • 可以将 Series 视为带有索引的一维数组。
  • 索引可以是唯一的,但不是必须的。
  • 数据可以是标量、列表、NumPy 数组等。
posted @ 2024-03-13 16:39  dear丹  阅读(44)  评论(0编辑  收藏  举报