版本 0.21.1(2017 年 12 月 12 日)#

这是 0.21.x 系列中的一个小错误修复版本,包括一些小的回归修复、错误修复和性能改进。我们建议所有用户升级到此版本。

亮点包括:

  • 暂时恢复 matplotlib 日期时间绘图功能。这应该可以解决隐式依赖 pandas 使用 matplotlib 绘制日期时间的用户的问题。看这里

  • 对 0.21.0 中引入的 Parquet IO 函数的改进。看 这里

恢复 Matplotlib 日期时间转换器注册#

datetimepandas 实现了一些 matplotlib 转换器,可以使用或值很好地格式化绘图上的轴标签Period。在 pandas 0.21.0 之前,它们隐式注册到 matplotlib,作为.import pandas

在 pandas 0.21.0 中,我们要求用户显式注册转换器。这给一些依赖这些转换器来实现常规绘图方法的用户带来了问题matplotlib.pyplot,因此我们暂时恢复了这一更改; pandas 0.21.1 再次在导入时注册转换器,就像之前的 0.21.0 一样。

我们添加了一个新选项来控制转换器: pd.options.plotting.matplotlib.register_converters。默认情况下,它们已注册。切换此选项可False删除 pandas 的格式化程序并恢复我们在注册它们时覆盖的任何转换器(GH 18301)。

我们正在与 matplotlib 开发人员合作,让这一切变得更容易。我们试图在用户便利性(自动注册转换器)与导入性能和最佳实践(导入 pandas 不应该产生覆盖您已设置的任何自定义转换器的副作用)之间取得平衡。将来,我们希望在 matplotlib 中拥有大部分日期时间格式化功能,而只在 pandas 中提供特定于 pandas 的转换器。然后,我们将优雅地弃用转换器的自动注册,转而支持用户在需要时显式注册它们。

新功能

Parquet IO 功能的改进#

其他增强功能#

弃用#

性能改进#

  • 改进了绘制大型系列/数据帧的性能(GH 18236)。

Bug修复

转换

  • 减法中的错误可能会在存在TimedeltaIndex时错误地溢出( GH 17791NaT

  • 从 DatetimeIndex 中减go datetimelike 的错误DatetimeIndex可能无法溢出(GH 18020

  • IntervalIndex.copy()复制和IntervalIndex非默认时出现错误closedGH 18339

  • 与,DataFrame.to_dict()一起使用时,可识别 tz 的日期时间列未转换为所需数组的错误(GH 18372orient='records'TypeError

  • 如果为 None ( GH 18431 ),DateTimeIndexdate_range()tz 感知start和时区不匹配的错误end不会引发错误end.tzinfo

  • Series.fillna()在 Python 2 上传递长整数时引发的错误( GH 18159)。

索引#

  • datetime.datetimea和dtype 系列的布尔比较中的错误datetime64[ns]GH 17965

  • 当尝试访问丢失的属性时,MultiIndex具有超过一百万条记录的错误不会引发( GH 18165AttributeError

  • IntervalIndex当以非默认值传递间隔列表时构造函数中的错误closedGH 18334

  • Index.putmask当无效掩码通过时出现错误( GH 18368

  • timedelta64[ns]数据类型的屏蔽赋值中的错误Series,错误地强制为浮点数(GH 18493

IO #

  • StataReader未解决显示格式转换日期/时间列的错误( GH 17990)。以前,具有显示格式的列通常保留为序数,并且不会转换为日期时间对象。

  • read_csv()读取压缩的 UTF-16 编码文件时出现错误( GH 18071 )

  • read_csv()指定时处理索引列中的空值的错误na_filter=FalseGH 5239

  • read_csv()读取具有高基数的数字类别字段时出现错误( GH 18186

  • DataFrame.to_csv()当表有MultiIndex列并且传入字符串列表时出现错误headerGH 5539

  • read_sql解析(GH 17855 )中指定格式的整数日期时间列时出现错误。

  • DataFrame.to_msgpack()序列化数据类型的数据时出现错误numpy.bool_GH 18390

  • read_json()从 S3 读取行分隔 JSON 时不解码的错误( GH 17200 )

  • 错误pandas.io.json.json_normalize()以避免修改metaGH 18610

  • to_latex()即使更高级别的索引与上一行不同(GH 14484),也不会打印重复的 MultiIndex 值的错误

  • HDFStore读取( GH 18413 )中仅包含 NaN 的分类列时出现错误

  • 乳胶多列总是跨越三列的DataFrame.to_latex()错误(GH 17959longtable=True

绘图#

  • 由它们生成的图形在 Python 3 中不可 pickle 的DataFrame.plot()错误Series.plot()( GH 18439 )DatetimeIndex

GroupBy/重新采样/滚动#

  • DataFrame.resample(...).apply(...)当可调用返回不同列时出现错误( GH 15169

  • DataFrame.resample(...)当时间发生变化 (DST) 且重采样频率为 12 小时或更高时出现错误( GH 15549 )

  • pd.DataFrameGroupBy.count()对类似日期时间的列进行计数时出现错误( GH 13393

  • rolling.var零值数组的计算不准确的错误( GH 18430

重塑#

  • 键数据类型不匹配的错误消息pd.merge_asof()现在包括左右键的数据类型(GH 18068

  • pd.concat连接空和非空 DataFrame 或系列时出现错误( GH 18178 GH 18187 )

  • Python 2 中的“when”作为条件传递DataFrame.filter(...)时出现错误( GH 13101unicode

  • np.seterr(divide='raise')设置时合并空数据帧时出现错误( GH 17776

数字#

  • 所有相等值中的错误都存在浮动问题pd.Series.rolling.skew()(GH 18044rolling.kurt()

分类#

  • DataFrame.astype()在空的情况下转换为“类别”DataFrame会导致分段错误的错误(GH 18004

  • 当项目不同时,测试模块中的错误消息已得到改进CategoricalDtypeGH 18069

  • CategoricalIndex现在可以正确地将 apd.api.types.CategoricalDtype作为其 dtype ( GH 18116 )

  • 当所有类别均为(GH 18051)时Categorical.unique()返回只读数组的错误codesNaN

  • DataFrame.groupby(axis=1)使用CategoricalIndex( GH 18432 )进行窃听

细绳

贡献者#

共有 46 人为此版本贡献了补丁。名字带有“+”的人首次贡献了补丁。

  • 亚伦·克里奇利 +

  • 亚历克斯·瑞奇克

  • 亚历山大·布赫科夫斯基 +

  • 亚历山大·迈克尔·沙德 +

  • 克里斯·马祖洛

  • 科尼利厄斯·里门施奈德 +

  • 戴夫·赫希菲尔德 +

  • 大卫·费舍尔 +

  • 大卫·斯坦斯比 +

  • 德罗·阿塔里亚 +

  • 埃里克·基斯林格 +

  • 汉斯+

  • 英戈尔夫·贝克尔 +

  • 扬·韦尔克曼 +

  • 杰夫·雷巴克

  • 乔里斯·范登博什

  • 约尔格·多普费尔特 +

  • 凯文·库尔 +

  • 克日什托夫·乔姆斯基 +

  • 莱夫·沃尔什

  • 竹内光

  • 曼拉吉·辛格 +

  • 马特·布雷默-海斯 +

  • 迈克尔·瓦斯科姆 +

  • 三重~~~ +

  • 彼得·霍夫曼 +

  • 罗伯特·迈耶 +

  • 萨姆·科汉 +

  • 西采·布劳威尔 +

  • 斯文+

  • 蒂姆·斯瓦斯特

  • 汤姆·奥格斯普格

  • 韦斯·特纳

  • 威廉·艾德 +

  • 怡美+

  • 博克德布鲁因 +

  • 古尔克

  • derestle-htwg +

  • 菲迪奥德+

  • 加布里埃尔克劳 +

  • 格菲扬

  • 加塞姆纳德夫 +

  • 杰布罗克门德尔

  • 杰申德尔

  • 迈克985 +

  • 礼帽-123