编辑
2026-04-01
undefined
00

目录

创建Series
索引
切片
隐式切片:左闭右开
输出
b    2
c    3
dtype: int64
显示切片:左闭右闭
基本属性和方法
输出
a    False
b     True
c    False
d    False
Name: abcd, dtype: bool
过滤掉空值
Series运算

pandas是基于NumPy的一种工具,该工具是为解决数据分析任务而创建的。安装pandas:pip install pandas

pandas的主要数据结构是Series(一维数据)与DataFrame(二维数据),这两种数据结构足以处理金融、统计、社会科学、工程等领域里的大多数案例。

Series序列类似于一维数组,由两部分组成:

  • values:一组数据(ndarray类型)
  • index:相关的数据索引标签

Series可以看做是一个有序的字典结构。

创建Series

由列表或数组创建:

import pandas as pd s = pd.Series([1, 2, 3]) print(s) 输出 0 1 1 2 2 3 dtype: int64 print(s.values) # 一维数组:[1 2 3] print(list(s.index)) # 索引:[0, 1, 2] s.index = ["A", "B", "C"] # 修改索引 s.index = list("ABC") # 修改索引 print(s.A, s["C"]) # 通过索引获取值 1 3

由字典创建:

d = {"a": 1, "b": 2, "c": 3} s = pd.Series(d) print(s) 输出 a 1 b 2 c 3 dtype: int64

索引

显示索引:

  • 使用index中的元素作为索引值

  • 使用.loc[](推荐)

    d = {"a": 1, "b": 2, "c": 3} s = pd.Series(d) print(s[["c", "a"]]) # 一次取多个元素,得到的类型是Series 输出 c 3 a 1 dtype: int64 print(s.loc[["c", "a"]])

隐式索引:

  • 使用整数作为索引值
  • 使用.iloc

print(s[[0, 2]]) print(s.iloc[[2, 0]])

Series可以创建多层索引,可以参考下面的DataFrame。

切片

d = {"a": 1, "b": 2, "c": 3, "d": 4} s = pd.Series(d)

隐式切片:左闭右开

print(s[1:3]) print(s.iloc[1:3])

输出

b    2

c    3

dtype: int64

显示切片:左闭右闭

print(s["b":"d"]) print(s.loc["b":"d"])

基本属性和方法

基本属性:

d = {"a": 1, "b": 2, "c": 3, "d": 4} s = pd.Series(d, name="abcd") print(s.shape)  # 形状:(4,) print(s.size)  # 元素个数:4 print(s.index)  # 索引:Index(['a', 'b', 'c', 'd'], dtype='object') print(s.values)  # 值:[1 2 3 4] print(s.name)  # 索引名字:abcd

方法:

print(s.head(3))  # 查看前几条数据,默认5 print(s.tail(3))  # 查看后几条数据,默认5

s["b"] = None print(s.isnull())  # isnull判断是否为空,notnull判断是否不为空

输出

a    False

b     True

c    False

d    False

Name: abcd, dtype: bool

过滤掉空值

print(s[s.notnull()]) print(s[~s.isnull()])  # ~ 取反

Series运算

适用于NumPy的数组运算也适用于Series。

Series之间的运算,会自动对齐索引进行运算。如果索引不对应,则补NaN,Series没有广播机制。可以使用add()函数来填充数据。

s1 = pd.Series([1, 3, 44]) s2 = pd.Series([11, 2, 8, 6]) print(s1 + s2) print(s1.add(s2, fill_value=0))  # 先填充0,再相加

本文作者:a

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!