Pandas基础功能全面解析

Pandas基础功能全面解析

pandas Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more pandas 项目地址: https://gitcode.com/gh_mirrors/pandas18/pandas

引言

Pandas是Python数据分析的核心库,提供了高效便捷的数据结构和数据分析工具。本文将深入讲解Pandas中最基础但最重要的功能,帮助初学者快速掌握Pandas的核心操作。

数据结构创建

Pandas有三种主要数据结构:

  1. Series:一维数组,带索引
  2. DataFrame:二维表格,行列都有索引
  3. Panel:三维数据结构(在较新版本中已不推荐使用)
import pandas as pd
import numpy as np

# 创建Series
s = pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])

# 创建DataFrame
index = pd.date_range('1/1/2000', periods=8)
df = pd.DataFrame(np.random.randn(8, 3), index=index, columns=['A', 'B', 'C'])

# 创建Panel(仅作演示,新版本中建议使用MultiIndex DataFrame)
wp = pd.Panel(np.random.randn(2, 5, 4), 
              items=['Item1', 'Item2'],
              major_axis=pd.date_range('1/1/2000', periods=5),
              minor_axis=['A', 'B', 'C', 'D'])

数据预览技巧

head()和tail()方法

查看数据的前几行或后几行是数据分析中最常用的操作:

long_series = pd.Series(np.random.randn(1000))

# 查看前5行(默认)
long_series.head()

# 查看后3行
long_series.tail(3)

数据属性和底层结构

基本属性

  • shape:返回数据的维度
  • index:Series的行索引
  • columns:DataFrame的列名
  • values:获取底层数据数组(不推荐在新代码中使用)
# 修改列名
df.columns = [x.lower() for x in df.columns]

# 获取形状
print(df.shape)

底层数据结构

Pandas现在推荐使用.array.to_numpy()来获取底层数据:

# 获取Series的底层数组
s.array

# 转换为NumPy数组
s.to_numpy()

# 处理时区数据
ser = pd.Series(pd.date_range('2000', periods=2, tz="CET"))
ser.to_numpy(dtype=object)  # 保留时区
ser.to_numpy(dtype="datetime64[ns]")  # 丢弃时区

加速运算

Pandas支持使用numexprbottleneck库加速运算:

# 启用/禁用加速
pd.set_option('compute.use_bottleneck', True)
pd.set_option('compute.use_numexpr', True)

这些优化库在处理大型数据集时能显著提升性能。

灵活的二元运算

广播机制

DataFrame和Series之间的运算遵循广播规则:

# 按列广播
df.sub(row, axis='columns')

# 按行广播
df.sub(column, axis='index')

缺失值处理

可以在运算中指定填充值:

df.add(df2, fill_value=0)

比较操作

Pandas提供了丰富的比较方法:

df.gt(df2)  # 大于
df.ne(df)   # 不等于

这些操作返回布尔值DataFrame,可用于条件筛选。

统计描述

Pandas提供了全面的统计方法:

df.mean()    # 平均值
df.std()     # 标准差
df.cumsum()  # 累计和

可以指定轴方向:

df.mean(0)  # 按列计算
df.mean(1)  # 按行计算

数据标准化示例

# 标准化数据(Z-score标准化)
ts_stand = (df - df.mean()) / df.std()

注意事项

  1. 避免直接使用.values属性,推荐使用.array.to_numpy()
  2. 比较操作时注意NaN的处理(NaN不等于NaN)
  3. 使用.equals()方法比较整个数据结构
  4. 布尔运算时使用.any().all()避免歧义

结语

掌握这些基础功能是使用Pandas进行数据分析的第一步。建议读者在实际项目中多加练习,逐步熟悉这些操作的用法和适用场景。

pandas Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more pandas 项目地址: https://gitcode.com/gh_mirrors/pandas18/pandas

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马品向

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值