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

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

亮点包括:

  • 临时恢复 matplotlib 的日期时间绘图功能。这将解决那些隐式依赖 pandas 使用 matplotlib 绘制日期时间的用户的问题。请参见 这里

  • 对在 0.21.0 版本中引入的 Parquet IO 函数的改进。请参见 这里

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

pandas 实现了一些 matplotlib 转换器,用于在包含 datetimePeriod 值的图表上很好地格式化轴标签。在 pandas 0.21.0 之前,这些转换器作为 import pandas 的副作用,隐式地注册到 matplotlib 中。

在 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)。

错误修复#

转换#

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

  • DatetimeIndex 中减去类似日期时间对象时可能无法溢出 (GH 18020)

  • 在复制带有非默认 closedIntervalIndex 时,IntervalIndex.copy() 中的错误 (GH 18339)

  • DataFrame.to_dict() 中的一个错误,当使用 orient='records' 时,tz-aware 的 datetime 列未转换为所需的数组,引发 TypeError (GH 18372)

  • DateTimeIndexdate_range() 中的一个错误,当 startend 时区不匹配时,如果 end.tzinfo 为 None,则不会引发错误 (GH 18431)

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

索引#

  • datetime.datetimedatetime64[ns] dtype 系列进行布尔比较中的错误 (GH 17965)

  • 当尝试访问缺失属性时,包含超过一百万条记录的 MultiIndex 没有引发 AttributeError 的错误 (GH 18165)

  • 当传递一个非默认 closed 的区间列表时,IntervalIndex 构造函数中的错误 (GH 18334)

  • 当传递无效的掩码时 Index.putmask 中的错误 (GH 18368)

  • timedelta64[ns] 数据类型的 Series 的掩码赋值中存在错误,错误地强制转换为浮点数 (GH 18493)

IO#

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

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

  • 在指定 na_filter=False 时,read_csv() 处理索引列中的空值存在错误 (GH 5239)

  • 在读取高基数数值类别字段时,read_csv() 中的错误 (GH 18186)

  • 当表格有 MultiIndex 列,并且为 header 传递了一个字符串列表时,DataFrame.to_csv() 中的错误 (GH 5539)

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

  • 在序列化 numpy.bool_ 数据类型的数据时,DataFrame.to_msgpack() 中的错误 (GH 18390)

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

  • pandas.io.json.json_normalize() 中的错误,以避免修改 meta (GH 18610)

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

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

  • longtable=True 的情况下,DataFrame.to_latex() 中的一个错误导致 latex 的多列总是跨越三列 (GH 17959)

绘图#

  • DataFrame.plot()Series.plot() 中使用 DatetimeIndex 时生成的图形在 Python 3 中不可序列化 (GH 18439)

GroupBy/重采样/滚动#

  • 当存在返回不同列的可调用对象时,DataFrame.resample(...).apply(...) 中的错误 (GH 15169)

  • 当有时间变化(DST)且重采样频率为12小时或更高时,DataFrame.resample(...) 中的错误 (GH 15549)

  • 在计数 datetimelike 列时 pd.DataFrameGroupBy.count() 中的错误 (GH 13393)

  • rolling.var 中的错误,在计算零值数组时结果不准确 (GH 18430)

重塑#

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

  • 当空和非空DataFrame或Series被连接时,pd.concat 中的错误 (GH 18178 GH 18187)

  • 在 Python 2 中,当 unicode 作为条件传递时,DataFrame.filter(...) 中的 Bug (GH 13101)

  • np.seterr(divide='raise') 设置时合并空 DataFrame 的错误 (GH 17776)

Numeric#

  • 在所有等值情况下,pd.Series.rolling.skew()rolling.kurt() 存在浮点问题 (GH 18044)

Categorical#

  • DataFrame.astype() 中的一个错误,在空的 DataFrame 上转换为 ‘category’ 会导致段错误 (GH 18004)

  • 在测试模块中的错误消息在项目具有不同的 CategoricalDtype 时得到了改进(GH 18069

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

  • Categorical.unique() 在所有类别都是 NaN 时返回只读的 codes 数组 (GH 18051)

  • DataFrame.groupby(axis=1) 中带有 CategoricalIndex 的错误 (GH 18432)

字符串#

贡献者#

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

  • Aaron Critchley +

  • Alex Rychyk

  • Alexander Buchkovsky +

  • Alexander Michael Schade +

  • Chris Mazzullo

  • Cornelius Riemenschneider +

  • Dave Hirschfeld +

  • David Fischer +

  • David Stansby +

  • Dror Atariah +

  • Eric Kisslinger +

  • Hans +

  • Ingolf Becker +

  • Jan Werkmann +

  • Jeff Reback

  • Joris Van den Bossche

  • Jörg Döpfert +

  • Kevin Kuhl +

  • Krzysztof Chomski +

  • Leif Walsh

  • Licht Takeuchi

  • Manraj Singh +

  • Matt Braymer-Hayes +

  • Michael Waskom +

  • Mie~~~ +

  • Peter Hoffmann +

  • Robert Meyer +

  • Sam Cohan +

  • Sietse Brouwer +

  • Sven +

  • Tim Swast

  • Tom Augspurger

  • Wes Turner

  • William Ayd +

  • Yee Mey +

  • bolkedebruin +

  • cgohlke

  • derestle-htwg +

  • fjdiod +

  • gabrielclow +

  • gfyoung

  • ghasemnaddaf +

  • jbrockmendel

  • jschendel

  • miker985 +

  • topper-123