python之pandas入门(详细)

这篇博客介绍了pandas的基础知识,包括Series、DataFrame和Panel的初始化,数据的索引与切片,以及合并与连接操作。重点讨论了DataFrame的创建、检索方法和merge函数的四种连接方式。此外,还提及了数据保存与加载的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

何为pandas

pandas在数据分析上广泛应用。我在看资料上,发现甚至有人评价pandas说:如果没有pandas,那么数据分析应该还是R语言的天下。至于是不是有这么厉害,我作为小白也不好评价。如果你也不知道,那么就往下看吧!

值得注意的是,pandas很多事在numpy基础上构建的,很多函数pandas和numpy是通用的。
python之numpy入门(详细)

pandas入门

初始化

首先我们了解一下pandas的结构,它以数据表为基本数据类型,有以下三种表:
Series: 一维数据,类似于 python 中的基本数据的 list 或 NumPy 中的 1D array。Pandas 里最基本的数据结构

DataFrame: 二维数据,DataFrame 是 Series 的容器

Panel:三维数据。Panel 是 DataFrame 的容器

在这里插入图片描述
其中我们实际使用过程应是Dataframe使用的最多。
其实数据表与数组的区别就在于多了一个索引。具体如下:

  • Series = 1darray + index
  • DataFrame = 2darray + index + columns
  • Panel = 3darray + index + columns + item

Series

创建 Series 只需用下面一行代码

pd.Series( x, index=idx )

其中 x 可以是

  1. 列表 (list)
  2. numpy 数组 (ndarray)
  3. 字典 (dict)

pd.date_range(‘20200817’,periods=7)

DataFrame

创建 DataFrame 只需用下面一行代码

pd.DataFrame( x, index=idx, columns=col )

其中 x 可以是

  1. 二维列表 (list)
  2. 二维 numpy 数组 (ndarray)
  3. 字典 (dict),其值是一维列表、numpy 数组或 Series
  4. 另外一个 DataFrame

另外还有一些方法,比如

df.head() #等价于df.head(5) ,查看前五行
df.tail(3)   # 查看尾三行
df.describe() #查看 DataFrame 每列的统计数据。

Panel

Panel用的不多,据说在未来的版本中还会被废除。这里就不说了,有兴趣可自行了解。

索引与切片

普通检索

下面主要是DdataFrame的索引与切片。
简单总结就是,基于标签用at和loc,基于位置用iat和iloc

  • 索引单元素:
    基于标签的 at
    基于位置的 iat

  • 切片 index 和 columns:
    基于标签的 loc
    基于位置的 iloc

还可使用. 切片单列,和使用[]来切片单列多列,单行与多行

import pandas as pd
symbol = ['BABA', 'JD', 'APPLE', 'MS', 'GS', 'WMT']
data = {
   
   '行业': ['电商', '电商', '科技', '金融', '金融', '零售'],
        '价格': [176.92, 25.95, 172.97, 41.79, 196.00, 99.55],
        '交易量': [16175610, 27113291, 18913154, 10132145, 2626634, 8086946],
        '雇员': [101550, 175336, 100000, 60348, 36600, 2200000]}
df = pd.DataFrame( data, index=symbol )
df.name='美股'
df.index.name = '代号'
df
行业 价格 交易量 雇员
代号
BABA 电商 176.92 16175610 101550
JD 电商 25.95 27113291 175336
APPLE 科技 172.97 18913154 100000
MS 金融 41.79 10132145 60348
GS 金融 196.00 2626634 36600
WMT 零售 99.55 8086946 2200000
df.at['JD','交易量'
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值