问题描述
在阅读pandas.Series
上的 pandas 文档时,它指出
系列就像一个固定大小的字典,你可以通过索引标签获取和设置值:
问题: pandas.Series 是一个fixed-size dict
是什么意思,如果它不像一个固定大小的 dict,它可以做什么?
1楼
就像固定大小的字典一样,您可以有效地获取和设置(已经存在的)键。
你不能(有效地)做的是添加一个元素。 虽然你可以做到:
In [11]: s
Out[11]:
a -1.344
b 0.845
c 1.076
d -0.109
e 12.000
dtype: float64
In [12]: s["f"] = 3.14 # works but slow (copies all the data)
In [13]: s
Out[13]:
a -1.344
b 0.845
c 1.076
d -0.109
e 12.000
f 3.140
dtype: float64
因为这会创建一个新系列(即通过创建旧的副本)。
什么系列(以及一般的 numpy 和 pandas 对象允许有效的聚合,例如 sums 和 groupby 操作。使用 python dict 类似的聚合会非常慢。
一个手动的原因是,这主要是由于数据可以存储在内存中的方式(连续和已知类型)而不是 Python 对象,无论它们是指向类型的指针还是指向数据的指针(这种误导意味着事情变慢了)...
Pandas 还附带了许多高效编写的函数和简洁的 API,因此您不必自己重写所有需要的功能......