一篇文章让你快速入门Pandas

Pandas介绍

我将在下面简单介绍Pandas,详细信息可以看官方文档Pandas中文官方文档

简单介绍

pandas是python的核心数据分析支持,提供了快速、灵活、明确的数据结构,旨在简单直观地处理关系型和标记型数据。Pandas 的目标是成为 Python 数据分析实践与实战的必备高级工具,其长远目标是成为最强大、最灵活、可以支持任何语言的开源数据分析工具。经过多年不懈的努力,Pandas 离这个目标已经越来越近了。

Pandas的基本功能

Pandas适用于处理以下类型的数据:
1.与 SQL 或 Excel 表类似的,含异构列的表格数据;
2.有序和无序(非固定频率)的时间序列数据;
3.带行列标签的矩阵数据,包括同构或异构型数据;
4.任意其它形式的观测、统计数据集, 数据转入 Pandas 数据结构时不必事先标记。
pandas的主要数据结构是Series(一维数据)和DataFrame(二维数据),Pandas 基于 NumPy (opens new window)开发,可以与其它第三方科学计算支持库完美集成。

Pandas的优势

Pandas比较与其他的数据处理有很多优势,下面列出部分优势:
1.处理浮点与非浮点数据里的缺失数据,表示为 NaN;
2.大小可变:插入或删除 DataFrame 等多维对象的列;
3.自动、显式数据对齐:显式地将对象与一组标签对齐,也可以忽略标签,在 Series、DataFrame 计算时自动与数据对齐;
4.强大、灵活的分组(group by)功能:拆分-应用-组合数据集,聚合、转换数据;
5.把 Python 和 NumPy 数据结构里不规则、不同索引的数据轻松地转换为 DataFrame 对象;
6.基于智能标签,对大型数据集进行切片、花式索引、子集分解等操作;
7.直观地合并(merge)、连接(join)数据集;
8.灵活地重塑(reshape)、透视(pivot)数据集;
9.轴支持结构化标签:一个刻度支持多个标签;
10.成熟的 IO 工具:读取文本文件(CSV 等支持分隔符的文件)、Excel 文件、数据库等来源的数据,利用超快的 HDF5 格式保存 / 加载数据;
11.时间序列:支持日期范围生成、频率转换、移动窗口统计、移动窗口线性回归、日期位移等时间序列功能。

数据结构

Series 带标签的一维同构数组
DataFrame 带标签的,大小可变的,二维异构表格

为什么有多个数据结构

Pandas 数据结构就像是低维数据的容器。比如,DataFrame 是 Series 的容器,Series 则是标量的容器。使用这种方式,可以在容器中以字典的形式插入或删除对象。处理 DataFrame 等表格数据时,index(行)或 columns(列)比 axis 0 和 axis 1 更直观。用这种方式迭代 DataFrame 的列,代码更易读易懂

大小可变与数据复制

Pandas 所有数据结构的值都是可变的,但数据结构的大小并非都是可变的,比如,Series 的长度不可改变,但 DataFrame 里就可以插入列。
Pandas 里,绝大多数方法都不改变原始的输入数据,而是复制数据,生成新的对象。 一般来说,原始输入数据不变更稳妥。

Pandas的基本内容

Pandas的基础方法

数据的生成与有关方法

一维数组

# 生成一个Series类型的一维数组
a = pd.Series([1, 2, 3, np.nan, 44, 1])
print(a)

0     1.0
1     2.0
2     3.0
3     NaN
4    44.0
5     1.0
dtype: float64

二维数组

dates = pd.date_range('20200127', periods=6)
print(dates)
'''第一个参数是数据,第二个参数是行,第三个是列,
详情可以用print(help(pd.DataFrame))查看'''
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=['a', 'b', 'c', 'd'])
print(df)

DatetimeIndex(['2020-01-27', '2020-01-28', '2020-01-29', '2020-01-30',
               '2020-01-31', '2020-02-01'],
              dtype='datetime64[ns]', freq='D')
                   a         b         c         d
2020-01-27  0.292798 -0.217713 -0.535531 -0.113389
2020-01-28  0.811442 -0.761526 -1.245899 -0.083227
2020-01-29  1.445080  2.055359 -1.355587  0.148992
2020-01-30 -0.486965  0.151710  0.574553  0.371862
2020-01-31  1.840392  1.384281  0.580354  2.058363
2020-02-01  0.704466 -0.469254 -0.010766  0.395096
# 指定矩阵直接转换成二维数组
df1 = pd.DataFrame(np.arange(12).reshape((3, 4)))
print(df1)
   0  1   2   3
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11
# 利用字典的方法进行生成
df2 = pd.DataFrame({
   'A':1, 'B':pd.Timestamp('20210127'), 'C':np.array([3<
  • 15
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Leosaf

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

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

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

打赏作者

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

抵扣说明:

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

余额充值