📜  Python中的 Pandas 简介(1)

📅  最后修改于: 2023-12-03 14:46:36.736000             🧑  作者: Mango

Python中的 Pandas 简介

Pandas 是一个基于 NumPy 的开源 Python 数据分析库,它提供了快速,灵活和富于表现力的数据结构,旨在使数据操作变得简单而直观。Pandas 是 Python 数据科学生态系统的一个重要组成部分,它广泛应用于学术界,金融界,工业界等领域。

Pandas 的数据结构

Pandas 提供了两种主要数据结构:Series 和 DataFrame。

Series

Series 是一个类似于一维数组的对象,它由一组数据和一组与之相关的标签(即索引)组成。Series 可以存储任何数据类型,包括整数,浮点数,字符串,Python 对象等等。与 NumPy 数组不同的是,Series 可以有任意类型的索引,而不仅仅是整数索引。

import pandas as pd

# 创建一个 Series 对象
data = pd.Series([0.25, 0.5, 0.75, 1.0])
print(data)

# 输出:
# 0     0.25
# 1     0.50
# 2     0.75
# 3     1.00
# dtype: float64
DataFrame

DataFrame 是一个类似于二维表结构的对象,它包含一组有序的列,每列可以是不同的数据类型(整数,浮点数,字符串,Python 对象等等)。DataFrame 有行索引和列索引,可以看作是由 Series 组成的字典。

# 创建一个 DataFrame 对象
data = pd.DataFrame({'country': ['China', 'India', 'USA', 'Indonesia'],
                     'population': [1439, 1380, 331, 273],
                     'area': [9706961, 3287263, 9372610, 1904569]})
print(data)

# 输出:
#      country  population     area
# 0      China        1439  9706961
# 1      India        1380  3287263
# 2        USA         331  9372610
# 3  Indonesia         273  1904569
Pandas 的数据操作

Pandas 提供了一系列灵活而高效的操作方法,使得数据清洗、转换、合并、分组和透视等任务变得简单而直观。

数据读取与写入

Pandas 可以读写多种格式的数据,包括 CSV,Excel,SQL 数据库等等。Pandas 提供了一系列读写方法,如 read_csv, read_excel, read_sql 等等。

# 读取 CSV 文件
data = pd.read_csv('data.csv')

# 将 DataFrame 对象写入 CSV 文件
data.to_csv('data.csv')
数据清洗

Pandas 提供了丰富的数据清洗方法,包括缺失值处理、重复值处理、异常值处理等等。

# 丢弃包含缺失值的行或列
data.dropna()  # 丢弃包含缺失值的行
data.dropna(axis=1)  # 丢弃包含缺失值的列

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

# 查找重复值
data.duplicated()  # 查找重复行
data.drop_duplicates()  # 移除重复行

# 查找并替换异常值
data.replace(-999, np.nan)  # 将 -999 替换为缺失值
数据转换

Pandas 提供了丰富的数据转换方法,包括索引重置、数据类型转换、字符串操作等等。

# 索引重置
data.reset_index()  # 重置列索引
data.set_index('column_name')  # 重置行索引

# 数据类型转换
data['column_name'].astype('int')  # 将列转换为整数类型

# 字符串操作
data['column_name'].str.upper()  # 将字符串转换为大写
数据合并

Pandas 提供了多种数据合并方法,包括连接、合并、拼接等等。

# 连接两个 DataFrame 对象
pd.concat([df1, df2], axis=0)  # 将两个 DataFrame 沿着行方向连接
pd.concat([df1, df2], axis=1)  # 将两个 DataFrame 沿着列方向连接

# 合并两个 DataFrame 对象
pd.merge(df1, df2, on='column_name')  # 按照指定列进行合并

# 拼接两个 Series 对象
pd.concat([s1, s2], axis=0)  # 将两个 Series 沿着行方向拼接
数据分组和透视

Pandas 提供了数据分组和透视的方法,方便进行统计和分析。

# 按照指定列进行分组并进行聚合操作
data.groupby('column_name').mean()  # 求每组的平均值
data.groupby('column_name').sum()  # 求每组的总和

# 透视表操作
data.pivot_table(values='column_name',
                 index=['column_name_1', 'column_name_2'],
                 columns='column_name_3',
                 aggfunc=np.mean)
总结

Pandas 是一个非常强大的数据分析库,它提供了丰富的数据结构和操作方法,可以方便地进行数据清洗、转换、合并、分组和透视等任务。对于数据科学家和数据分析人员而言,学会 Pandas 是非常重要的。