2023年3月1日,Pandas 公布了2.0版本。6个月后(8月30日),更新了新的2.1版。让咱们看看他有什么重要的更新。
更好的PyArrow反对
PyArrow是在Panda 2.0中新退出的后端,对于大数据来说提供了优于NumPy的性能。Pandas 2.1加强了对PyArrow的反对。官网在这次更新中应用最大的高亮字体发表 PyArrow 将是 Pandas 3.0的根底依赖,这阐明Panda 是认定了PyArrow了。
映射所有数组类型时能够疏忽NaN类值
在以前版本,可空类型上调用map会在存在相似nan的值时触发谬误。而当初能够设定na_action= " ignore "参数,将疏忽所有类型数组中的nan值。
以下是发行阐明中的一个例子:
In [5]: ser = pd.Series(["a", "b", np.nan], dtype="category") In [6]: ser.map(str.upper, na_action="ignore") Out[6]: 0 A 1 B 2 NaN dtype: category Categories (2, object): ['A', 'B'] ##no errors !
字符串的默认类型
默认状况下,所有字符串都存储在具备NumPy对象dtype的列中,如果你装置了PyArrow,则会将所有字符串推断为PyArrow反对的字符串,这个选项须要应用这个参数设置:
pd.options.future.infer_string = True
Copy-On-Write改良
写时复制在很久以前就呈现了。在Pandas中有时你对数据做一些操作,批改的不是数据源的正本,而是数据源自身。例子:
In [5]: pd.options.mode.copy_on_write = True In [6]: df = pd.DataFrame({"foo": [1, 2, 3], "bar": [4, 5, 6]}) In [7]: subset = df["foo"] In [8]: subset.iloc[0] = 100 In [9]: df Out[9]: foo bar 0 1 4 1 2 5 2 3 6
写时复制是一种避免意外可变性的机制。当从其余数据推断数据时,能够保障只更改正本。这意味着代码将更加对立。Pandas将辨认何时复制对象,并且只在必要时复制对象。在Pandas 2.1中,花了很多精力使许多中央的Copy-On-Write保持一致。
新的日期办法
在Pandas 2.1中,减少了一组新解决日期的新办法。
以下是一些最值得注意的办法:
- Series.dt.is_month_start,
- Series.dt.is_month_end,
- Series.dt.is_year_start,
- Series.dt.is_year_end,
- Series.dt.is_quarter_start,
- Series.dt.is_quarter_end,
- Series.dt.days_in_month,
- Series.dt.unit,
- Series.dt.normalize,
- Series.dt.day_name(),
- Series.dt.month_name(),
这些办法对咱们理论利用来说还是很好的
Python 3.9
pandas 2.1.0反对的最低版本是Python 3.9,也就是说咱们如果有低版本的Python我的项目,要尽快降级了,或者说新我的项目的话最低也要3.9了
总结
在这次更新中提到了Pandas3.0,阐明官网曾经开始对它进行设计了,而且也强调了PyArrow的重要性,所以要用好Pandas,PyArrow的根底是须要把握的。官网的地址:
https://avoid.overfit.cn/post/2604f28a0aef4ae99cf4df15b977210c