乐趣区

关于机器学习:Pandas-21发布了

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

退出移动版