Python Pandas基础教程

章节1:介绍Pandas

Pandas是一个用于数据处理和分析的强大Python库。它提供了丰富的数据结构和数据处理工具,使得数据分析更加简单和高效。Pandas底层使用了NumPy数组,通过向量化计算和广播功能,可以对大规模数据进行高效的操作和计算。同时,Pandas还支持自定义函数和向量化函数,可以更加灵活地处理数据。

1.1 安装Pandas

要使用Pandas,首先需要安装它。您可以使用以下命令在Python环境中安装Pandas:

pip install pandas

1.2 导入Pandas

在编写Python程序之前,我们需要导入Pandas库。一般习惯使用import语句导入Pandas,并约定把它重命名为pd,以方便后续使用。您可以使用以下代码导入Pandas:

import pandas as pd

章节2:Pandas数据结构

Pandas提供了两种主要的数据结构,即SeriesDataFrame。本章节将详细介绍这两种数据结构。

2.1 Series

Series是一种一维数组结构,它可以存储任何类型的数据,并且每个数据都被分配一个索引。以下是创建和操作Series的示例代码:

# 创建一个Series
s = pd.Series([1, 3, 5, np.nan, 6, 8])

# 访问Series的元素
print(s[0])
print(s[:3])

# 使用自定义索引创建Series
s = pd.Series([1, 3, 5, np.nan, 6, 8], index=['a', 'b', 'c', 'd', 'e', 'f'])

# 通过索引访问Series的元素
print(s['a'])
print(s[['a', 'b']])

2.2 DataFrame

DataFrame是Pandas中最常用的数据结构,它是一个二维表格,每一列可以存储不同类型的数据。以下是创建和操作DataFrame的示例代码:

# 通过字典创建DataFrame
data = {'name': ['John', 'Emma', 'Tom', 'Amy'],
        'age': [25, 28, 30, 32],
        'gender': ['M', 'F', 'M', 'F']}
df = pd.DataFrame(data)

# 查看DataFrame的前几行
print(df.head())

# 查看DataFrame的统计信息
print(df.describe())

# 对DataFrame进行排序
df_sorted = df.sort_values('age')

# 添加新的列
df['salary'] = [5000, 6000, 7000, 8000]

# 删除指定列
df = df.drop('gender', axis=1)

章节3:数据操作

Pandas提供了丰富的数据操作和处理功能,包括数据清洗、合并、切片等。本章节将介绍一些常用的数据操作方法。

3.1 数据清洗

数据清洗是数据分析的重要步骤之一,Pandas提供了很多方法来处理缺失值、重复值等常见数据问题。以下是一些常用的数据清洗方法示例:

# 查找缺失值
print(df.isnull())

# 删除包含缺失值的行
df = df.dropna()

# 填充缺失值
df = df.fillna(0)

# 查找重复值
print(df.duplicated())

# 删除重复值
df = df.drop_duplicates()

3.2 数据合并

在数据分析中,经常需要将多个数据集合并为一个。Pandas提供了多种数据合并的方法,包括合并、连接、拼接等。以下是一些常用的数据合并方法示例:

# 合并两个DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3],
                    'B': ['a', 'b', 'c']})
df2 = pd.DataFrame({'A': [4, 5, 6],
                    'B': ['d', 'e', 'f']})
df = pd.concat([df1, df2])

# 对两个DataFrame进行连接
df1 = pd.DataFrame({'key': ['A', 'B', 'C'],
                    'value': [1, 2, 3]})
df2 = pd.DataFrame({'key': ['B', 'C', 'D'],
                    'value': [4, 5, 6]})
df = pd.merge(df1, df2, on='key')

# 按指定轴拼接DataFrame
df = pd.concat([df1, df2], axis=1)

3.3 数据切片

数据切片是指从DataFrame中选择部分数据进行操作或分析的过程。Pandas提供了多种方式进行数据切片。以下是一些常用的数据切片方法示例:

# 按索引切片
df_slice = df[1:3]  # 选择第2行到第3行

# 按列名切片
df_slice = df['A']  # 选择某一列

# 按条件切片
df_slice = df[df['A'] > 2]  # 选择'A'列中大于2的行

# 按行列坐标切片
df_slice = df.iloc[1:3, 0:2]  # 选择第2行到第3行、第1列到第2列的部分

# 使用布尔数组进行切片
df_slice = df[df > 0]  # 选择所有大于0的元素

以上是一些常用的数据切片方法,通过灵活运用,可以根据实际需要选择和操作数据。

章节4:常用的Pandas方法

Pandas提供了众多强大的方法,用于对数据进行处理、分析和操作。本章节将介绍一些常用的Pandas方法。

4.1 数据读取与写入

首先,让我们了解一些常用的数据读取与写入方法:

  • pd.read_csv(filename): 从CSV文件中读取数据,并返回一个DataFrame。
  • df.to_csv(filename): 将DataFrame数据写入到CSV文件中。
  • pd.read_excel(filename): 从Excel文件中读取数据,并返回一个DataFrame。
  • df.to_excel(filename): 将DataFrame数据写入到Excel文件中。
  • pd.read_sql(query, connection): 从SQL数据库中读取数据,并返回一个DataFrame。
  • df.to_sql(table_name, connection): 将DataFrame数据写入到SQL数据库中。

4.2 数据统计

下面是一些常用的数据统计方法:

  • df.head(): 查看DataFrame的前几行数据,默认是前5行。
  • df.tail(): 查看DataFrame的后几行数据,默认是后5行。
  • df.describe(): 查看DataFrame的统计信息,包括计数、均值、标准差、最小值、最大值等。
  • df.info(): 显示DataFrame的基本信息,包括列名、非空值数量、每列的数据类型等。
  • df.mean(): 计算每列的平均值。
  • df.sum(): 计算每列的和。
  • df.max(): 找出每列的最大值。

4.3 数据筛选与过滤

Pandas提供了多种方法进行数据筛选与过滤:

  • df[col]: 选择DataFrame中指定列的数据。
  • df.loc[row_index, col_index]: 根据行列索引选择DataFrame中的部分数据。
  • df.iloc[row_index, col_index]: 根据行列的整数位置选择DataFrame中的部分数据。
  • df[df[col] > condition]: 使用条件进行数据筛选。
  • df.filter(regex='pattern'): 使用正则表达式选择列名匹配模式的数据。

4.4 数据排序

排序是数据处理中常见的操作之一,Pandas提供了数据排序的方法:

  • df.sort_values(by=col): 按照指定的列对DataFrame进行升序排序。
  • df.sort_values(by=col, ascending=False): 按照指定的列对DataFrame进行降序排序。
  • df.sort_index(): 根据索引对DataFrame进行排序。

4.5 数据分组与聚合

在数据分析中,对数据进行分组和聚合是常见的操作,Pandas提供了强大的分组和聚合方法:

  • df.groupby(col): 按指定的列对DataFrame进行分组。
  • df.groupby(col).mean(): 对分组后的数据进行均值计算。
  • df.groupby(col).sum(): 对分组后的数据进行求和计算。
  • df.groupby(col).apply(func): 对分组后的数据应用自定义函数。

4.5 常见应用函数

当涉及到数据处理和分析时,Pandas提供了许多应用函数,用于对数据进行转换、映射、统计和计算等操作。下面是一些常用的Pandas应用函数的介绍:

  • apply(func): 对Series或DataFrame的每个元素应用指定的函数。可以将自定义函数应用于每个元素,并返回一个新的Series或DataFrame。
# 对DataFrame中的每个元素进行平方
df = df.apply(lambda x: x**2)
  • map(dict or series): 对Series的每个元素进行映射操作。可以使用字典或Series对象来映射Series中的值。
# 根据字典映射替换Series中的值
s = s.map({'A': 'apple', 'B': 'banana', 'C': 'cherry'})
  • applymap(func): 对DataFrame的每个元素应用指定的函数。可以将自定义函数应用于DataFrame的所有元素,并返回一个新的DataFrame。
# 对DataFrame中的每个元素进行平方
df = df.applymap(lambda x: x**2)
  • transform(func): 对DataFrame的每个分组应用指定的函数。可以将自定义函数应用于每个分组,并返回一个新的DataFrame,形状与原始DataFrame保持一致。
# 对DataFrame中的每个分组计算平均值
df['mean'] = df.groupby('group')['value'].transform('mean')
  • groupby().apply(func): 对DataFrame进行分组,并将分组后的数据应用指定的函数。可用于执行自定义聚合操作。
# 计算每个分组的标准差
std = df.groupby('group')['value'].apply(lambda x: np.std(x))
  • value_counts(): 返回一个Series,该Series包含了DataFrame中每个唯一值出现的次数。
# 统计DataFrame中每个唯一值的出现次数
counts = df['column'].value_counts()
  • cut(bins): 将连续数据按照指定的间隔划分为不同的分组。可用于分析连续数据的分布情况。
# 将数据按照指定的间隔划分为不同的等宽分组
df['category'] = pd.cut(df['value'], bins=[0, 10, 20, 30])

以上介绍的只是一部分常用的Pandas方法,通过灵活运用它们,可以在数据处理和分析过程中实现更多复杂的操作。

 

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值