版本 0.21.1(2017 年 12 月 12 日)#
这是 0.21.x 系列中的一个小错误修复版本,包括一些小的回归修复、错误修复和性能改进。我们建议所有用户升级到此版本。
亮点包括:
暂时恢复 matplotlib 日期时间绘图功能。这应该可以解决隐式依赖 pandas 使用 matplotlib 绘制日期时间的用户的问题。看这里。
对 0.21.0 中引入的 Parquet IO 函数的改进。看 这里。
v0.21.1 中的新增功能
恢复 Matplotlib 日期时间转换器注册#
datetime
pandas 实现了一些 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 功能的改进#
DataFrame.to_parquet()
当底层引擎支持时,现在将写入非默认索引。当使用read_parquet()
( GH 18581 )读回时,索引将被保留。read_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)。
Bug修复#
转换#
减法中的错误可能会在存在
TimedeltaIndex
时错误地溢出( GH 17791)NaT
从 DatetimeIndex 中减go datetimelike 的错误
DatetimeIndex
可能无法溢出(GH 18020)IntervalIndex.copy()
复制和IntervalIndex
非默认时出现错误closed
(GH 18339)与,
DataFrame.to_dict()
一起使用时,可识别 tz 的日期时间列未转换为所需数组的错误(GH 18372)orient='records'
TypeError
如果为 None ( GH 18431 ),
DateTimeIndex
则date_range()
tz 感知start
和时区不匹配的错误end
不会引发错误end.tzinfo
Series.fillna()
在 Python 2 上传递长整数时引发的错误( GH 18159)。
索引#
IO #
StataReader
未解决显示格式转换日期/时间列的错误( GH 17990)。以前,具有显示格式的列通常保留为序数,并且不会转换为日期时间对象。read_csv()
读取压缩的 UTF-16 编码文件时出现错误( GH 18071 )read_csv()
指定时处理索引列中的空值的错误na_filter=False
(GH 5239)read_csv()
读取具有高基数的数字类别字段时出现错误( GH 18186)DataFrame.to_csv()
当表有MultiIndex
列并且传入字符串列表时出现错误header
(GH 5539)read_sql
解析(GH 17855 )中指定格式的整数日期时间列时出现错误。DataFrame.to_msgpack()
序列化数据类型的数据时出现错误numpy.bool_
(GH 18390)read_json()
从 S3 读取行分隔 JSON 时不解码的错误( GH 17200 )错误
pandas.io.json.json_normalize()
以避免修改meta
(GH 18610)to_latex()
即使更高级别的索引与上一行不同(GH 14484),也不会打印重复的 MultiIndex 值的错误HDFStore
读取( GH 18413 )中仅包含 NaN 的分类列时出现错误乳胶多列总是跨越三列的
DataFrame.to_latex()
错误(GH 17959)longtable=True
绘图#
由它们生成的图形在 Python 3 中不可 pickle 的
DataFrame.plot()
错误Series.plot()
( GH 18439 )DatetimeIndex
GroupBy/重新采样/滚动#
重塑#
数字#
所有相等值中的错误都存在浮动问题
pd.Series.rolling.skew()
(GH 18044)rolling.kurt()
分类#
DataFrame.astype()
在空的情况下转换为“类别”DataFrame
会导致分段错误的错误(GH 18004)当项目不同时,测试模块中的错误消息已得到改进
CategoricalDtype
(GH 18069)CategoricalIndex
现在可以正确地将 apd.api.types.CategoricalDtype
作为其 dtype ( GH 18116 )当所有类别均为(GH 18051)时
Categorical.unique()
返回只读数组的错误codes
NaN
DataFrame.groupby(axis=1)
使用CategoricalIndex
( GH 18432 )进行窃听
细绳#
Series.str.split()
现在将NaN
在所有扩展列中传播值,而不是None
(GH 18450)
贡献者#
共有 46 人为此版本贡献了补丁。名字带有“+”的人首次贡献了补丁。
亚伦·克里奇利 +
亚历克斯·瑞奇克
亚历山大·布赫科夫斯基 +
亚历山大·迈克尔·沙德 +
克里斯·马祖洛
科尼利厄斯·里门施奈德 +
戴夫·赫希菲尔德 +
大卫·费舍尔 +
大卫·斯坦斯比 +
德罗·阿塔里亚 +
埃里克·基斯林格 +
汉斯+
英戈尔夫·贝克尔 +
扬·韦尔克曼 +
杰夫·雷巴克
乔里斯·范登博什
约尔格·多普费尔特 +
凯文·库尔 +
克日什托夫·乔姆斯基 +
莱夫·沃尔什
竹内光
曼拉吉·辛格 +
马特·布雷默-海斯 +
迈克尔·瓦斯科姆 +
三重~~~ +
彼得·霍夫曼 +
罗伯特·迈耶 +
萨姆·科汉 +
西采·布劳威尔 +
斯文+
蒂姆·斯瓦斯特
汤姆·奥格斯普格
韦斯·特纳
威廉·艾德 +
怡美+
博克德布鲁因 +
古尔克
derestle-htwg +
菲迪奥德+
加布里埃尔克劳 +
格菲扬
加塞姆纳德夫 +
杰布罗克门德尔
杰申德尔
迈克985 +
礼帽-123