Python数据分析模块pandas之Series序列

28次阅读
没有评论

共计 1541 个字符,预计需要花费 4 分钟才能阅读完成。

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,再相加

正文完
post-qrcode
 0
三毛
版权声明:本站原创文章,由 三毛 于2024-01-17发表,共计1541字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)