版本 0.21.1 (2017年12月12日)#
这是 0.21.x 系列中的一个小错误修复版本,包括一些小的回归修复、错误修复和性能改进。我们建议所有用户升级到此版本。
亮点包括:
临时恢复 matplotlib 的日期时间绘图功能。这将解决那些隐式依赖 pandas 使用 matplotlib 绘制日期时间的用户的问题。请参见 这里。
对在 0.21.0 版本中引入的 Parquet IO 函数的改进。请参见 这里。
v0.21.1 中的新内容
恢复 Matplotlib 日期时间转换器注册#
pandas 实现了一些 matplotlib 转换器,用于在包含 datetime
或 Period
值的图表上很好地格式化轴标签。在 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 功能的改进#
DataFrame.to_parquet()
现在将在底层引擎支持时写入非默认索引。使用read_parquet()
读回时将保留索引 (GH 18581)。read_parquet()
现在允许指定从 parquet 文件中读取的列 (GH 18154)read_parquet()
现在允许指定传递给相应引擎的 kwargs (GH 18216)
其他增强功能#
Timestamp.timestamp()
现在在 Python 2.7 中可用。(GH 17329)
弃用#
pandas.tseries.register
已重命名为pandas.plotting.register_matplotlib_converters()
(GH 18301)
性能提升#
改进了绘制大型序列/数据帧的性能 (GH 18236)。
错误修复#
转换#
TimedeltaIndex
减法中的错误在NaT
存在时可能不正确地溢出 (GH 17791)在
DatetimeIndex
中减去类似日期时间对象时可能无法溢出 (GH 18020)在复制带有非默认
closed
的IntervalIndex
时,IntervalIndex.copy()
中的错误 (GH 18339)在
DataFrame.to_dict()
中的一个错误,当使用orient='records'
时,tz-aware 的 datetime 列未转换为所需的数组,引发TypeError
(GH 18372)DateTimeIndex
和date_range()
中的一个错误,当start
和end
时区不匹配时,如果end.tzinfo
为 None,则不会引发错误 (GH 18431)在Python 2上传递长整数时引发错误的
Series.fillna()
中的错误 (GH 18159)。
索引#
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/重采样/滚动#
重塑#
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)
字符串#
Series.str.split()
现在将在所有扩展列中传播NaN
值,而不是None
(GH 18450)
贡献者#
共有 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