Python 中的 Pandas(数据分析与处理)

Pandas 是 Python 中最受欢迎的数据处理库之一,其名字源自于"Panel Data"(面板数据)的缩写。它提供了三种主要的数据结构:Series , DataFrame , Panel(在新版本已经被弃用)


数据操作与基本技巧

  • 数据读取与加载:Pandas 支持从多种数据源加载数据,包括 CSV 文件、Excel 文件、SQL 数据库、JSON 文件等。使用 pd.read_csv()、pd.read_excel() 等函数可以方便地将数据加载到 DataFrame 中进行后续处理。
  • 数据探索与预览:通过head()、tail()、info()、describe() 等方法可以快速查看数据的前几行、后几行、基本信息以及统计摘要。
  • 数据选择与过滤:使用行索引、列索引、布尔条件等方式选择感兴趣的数据子集。例如,通过 df[column_name] 或 df.loc[row_index, column_name] 可以选取指定的列或行。
  • 数据清洗与处理:处理缺失值、重复值、异常值等,使用 **dropna()、fillna()、drop_duplicates()、replace()**等方法对数据进行清洗和处理,保证数据质量。
  • 数据重塑与转换:使用 **pivot_table()、stack()、unstack()**等方法对数据进行重塑和转换,以满足不同的分析需求

高级数据分析与处理技巧

  • 数据统计与聚合:使用 **groupby()**方法按照某些条件对数据进行分组,然后通过聚合函数如 sum()、mean()、count() 等进行统计计算。
  • 时间序列数据分析:对于时间序列数据,Pandas 提供了丰富的处理功能,包括日期范围生成、日期索引设置、时间重采样、滚动计算等,方便用户进行时间序列数据分析与预测。
  • 数据可视化:Pandas 结合 Matplotlib、Seaborn 等可视化库,可以方便地绘制折线图、柱状图、散点图等各种图表,直观展示数据的分布和趋势。
  • 高效计算与优化:Pandas 支持向量化操作,通过使用 NumPy 数组和 Pandas 的内置函数,可以实现高效的数据处理和计算。此外,还可以通过并行计算、内存优化等方式进一步提高计算效率

Series

类似于一维数组,由一组数据和与之相关的索引组成。每个元素都有对应的标签,可以通过标签进行索引和操作。

1,创建Series

使用列表或数组创建Series:可以通过传递Python列表或NumPy数组来创建Series

python 复制代码
import pandas as pd
s = pd.Series([1, 2, 3, 4, 5])

使用字典创建Series:字典的键将成为Series的索引

python 复制代码
data = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
s = pd.Series(data)

2,索引

python 复制代码
# 使用位置索引:可以使用整数位置来访问Series中的元素
s[0]  # 访问第一个元素


# 使用自定义索引:可以使用自定义的标签索引访问元素
s['a']  # 访问标签为'a'的元素

3,基本属性

|------------|------------------------------|
| values | 返回Series的数据部分(一个NumPy数组) |
| index | 返回Series的索引部分(一个Index对象) |
| dtype | 返回Series中的数据类型 |

4,基本操作

python 复制代码
# 算术操作:支持基本的算术运算,如加法、减法、乘法和除法
s1 + s2
s1 * 2

# 索引与切片:可以使用位置索引或自定义索引进行索引和切片操作
s[1:3]  # 选择第2到第3个元素
s['a':'c']  # 选择标签从'a'到'c'的元素

5,数据对齐

当对两个Series进行操作时,Pandas会根据索引自动对齐数据

python 复制代码
s1 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
s2 = pd.Series([4, 5, 6], index=['b', 'c', 'd'])
result = s1 + s2

6,其他

Pandas提供了多种方法处理缺失数据,如isnull()、fillna()等

可以使用apply()方法应用函数到Series的每个元素上

提供了一系列统计函数,如sum()、mean()、max()等,用于计算Series的统计信息

Series对象提供了plot()方法,可以直接绘制数据的图表


DataFrame:

类似于电子表格或 SQL 数据库中的表格数据结构,由多个 Series 组成,每一列可以是不同的数据类型。DataFrame 提供了强大的数据操作和处理功能,适用于各种复杂的数据分析任务。

1,创建DataFrame

通过传递字典创建:可以使用字典来创建DataFrame,其中字典的键将成为DataFrame的列标签

python 复制代码
import pandas as pd
data = {'Name': ['zzz', 'xxx', 'ddd'],
        'Age': [25, 30, 35],
        'City': ['New York', 'Los Angeles', 'Shanghai']}
df = pd.DataFrame(data)

也可以通过读取外部数据创建:可以从文件(如CSV、Excel等)或数据库中读取数据创建DataFrame

2,基本属性

python 复制代码
# shape:返回DataFrame的行数和列数
df.shape

# columns:返回DataFrame的列标签
df.columns

# index:返回DataFrame的行索引
df.index

3,索引与选择数据

python 复制代码
# 使用列标签选择列:可以通过列标签直接选择DataFrame中的列
df['Name']


# 使用loc和iloc选择行和列
df.loc[0]  # 选择索引为0的行
df.loc[:, 'Age']  # 选择名为'Age'的列的所有行
df.iloc[0]  # 使用整数位置选择行

# 使用布尔索引进行条件选择
df[df['Age'] > 25]

4,基本操作

python 复制代码
# 添加列
df['Gender'] = ['Female', 'Male', 'Male']

# 删除列
df.drop('City', axis=1, inplace=True)

# 行列转置
df.T

5,数据排序

python 复制代码
# 按列或行的值进行排序
df.sort_values(by='Age')

6,其他

处理缺失数据:可以使用dropna()删除包含缺失值的行或列,或使用fillna()填充缺失值。
处理重复数据:使用drop_duplicates()删除重复行

使用groupby()方法对数据进行分组并应用聚合函数

使用concat()、merge()或join()方法将多个DataFrame合并成一个

使用pivot_table()方法创建数据透视表

使用plot()方法进行数据可视化,例如绘制柱状图、折线图等

相关推荐
databook5 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar6 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户8356290780517 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_7 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
RestCloud7 小时前
数据传输中的三大难题,ETL 平台是如何解决的?
数据分析·api
数据智能老司机13 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机14 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机14 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机14 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i15 小时前
drf初步梳理
python·django