0.23.1 中的新增内容(2018 年 6 月 12 日)# 这是 0.23.x 系列中的一个小错误修复版本,包括一些小的回归修复和错误修复。我们建议所有用户升级到此版本。 警告 从 2019 年 1 月 1 日开始,pandas 功能版本将仅支持 Python 3。有关更多信息,请参阅删除 Python 2.7。 v0.23.1 中的新增功能 固定回归 性能改进 Bug修复 贡献者 固定回归# 将系列与 datetime.date 进行比较 我们已恢复 0.23.0 更改以比较Series持有日期时间和datetime.date对象 ( GH 21152 )。在 pandas 0.22 及更早版本中,比较包含日期时间和对象的 Seriesdatetime.date会在比较之前将 强制转换datetime.date为日期时间。这与 Python、NumPy 和 不一致DatetimeIndex,它们从不考虑日期时间和datetime.date相等。 在 0.23.0 中,我们统一了 DatetimeIndex 和 Series 之间的操作,并在此过程中更改了一系列日期时间之间的比较,并且datetime.date没有警告。 我们暂时恢复了 0.22.0 行为,因此日期时间和日期可能再次比较相等,但在未来版本中恢复 0.23.0 行为。 总而言之,以下是 0.22.0、0.23.0、0.23.1 中的行为: # 0.22.0... Silently coerce the datetime.date >>> import datetime >>> pd.Series(pd.date_range('2017', periods=2)) == datetime.date(2017, 1, 1) 0 True 1 False dtype: bool # 0.23.0... Do not coerce the datetime.date >>> pd.Series(pd.date_range('2017', periods=2)) == datetime.date(2017, 1, 1) 0 False 1 False dtype: bool # 0.23.1... Coerce the datetime.date with a warning >>> pd.Series(pd.date_range('2017', periods=2)) == datetime.date(2017, 1, 1) /bin/python:1: FutureWarning: Comparing Series of datetimes with 'datetime.date'. Currently, the 'datetime.date' is coerced to a datetime. In the future pandas will not coerce, and the values not compare equal to the 'datetime.date'. To retain the current behavior, convert the 'datetime.date' to a datetime with 'pd.Timestamp'. #!/bin/python3 0 True 1 False dtype: bool 另外,TypeError今后订购比较也会提高a。 其他修复 to_sql()恢复了执行多值插入的能力,因为这在某些情况下会导致回归( GH 21103)。将来这将是可配置的。 修复了时区感知数据中DatetimeIndex.date和属性的回归:返回 tz 感知时间而不是 tz-naive ( GH 21267 ),并且 当输入日期具有非 UTC 时区 ( GH 21230 ) 时返回不正确的日期。DatetimeIndex.timeDatetimeIndex.timeDatetimeIndex.date pandas.io.json.json_normalize()修复了使用 JSON 中的嵌套级别中的值调用时的回归None,并且不删除值为None(GH 21158、GH 21356)的键。 to_csv()指定压缩和编码时,错误会导致编码错误( GH 21241、GH 21118) 阻止 pandas 通过 -OO 优化导入的错误(GH 21071) 当各个类别是可迭代的并且是可迭代的时,Categorical.fillna()错误地引发 a 的错误(GH 21097,GH 19788)TypeErrorvaluevalue 修复了构造函数中的回归,None在传递时将 NA 值强制为字符串dtype=str(GH 21083) 回归中枢轴缺失值的pivot_table()排序会给出未对齐的结果(GH 21133)Categoricalindex 修复了布尔索引/列合并中的回归(GH 21119)。 性能改进# CategoricalIndex.is_monotonic_increasing()改进了、CategoricalIndex.is_monotonic_decreasing()和CategoricalIndex.is_monotonic()( GH 21025 )的性能 CategoricalIndex.is_unique()改进了( GH 21107 )的性能 Bug修复# 分组/重采样/滚动 DataFrame.agg()将多个聚合函数应用于具有重复列名的错误DataFrame会导致堆栈溢出(GH 21063) GroupBy.ffill()由于GroupBy.bfill()实现使用不稳定排序,分组内的填充并不总是按预期应用的错误( GH 21207) 指定和GroupBy.rank()时结果未缩放至 100% 的错误method='dense'pct=True 错误pandas.DataFrame.rolling()并pandas.Series.rolling()错误地接受了 0 窗口大小而不是提高(GH 21286) 数据类型特定 Series.str.replace()该方法TypeError在 Python 3.5.2 上抛出错误( GH 21078) Timedelta使用单位传递浮点数会过早舍入浮点数精度的错误( GH 14156) 将两个对象与参数进行比较时错误pandas.testing.assert_index_equal()引发的错误(GH 19776)AssertionErrorCategoricalIndexcheck_categorical=False 疏 SparseArray.shape以前仅返回形状的错误SparseArray.sp_values(GH 21126) 索引 错误在于Series.reset_index()未使用无效的级别名称引发适当的错误(GH 20925) interval_range()当start/periods或end/periods用 floatstart或end( GH 21161 )指定时出现错误 MultiIndex.set_names()错误出现在MultiIndexwith ( GH 21149 )中nlevels == 1 构造函数中的错误,不完全支持从分类数据IntervalIndex创建( GH 21243,GH 21253)IntervalIndex MultiIndex.sort_index()无法保证使用level=1;正确排序的错误这也会导致特定DataFrame.stack()操作中的数据错位(GH 20994、GH 20945、GH 21052) 绘图 新关键字(sharex、sharey)用于打开/关闭使用 pandas.DataFrame().groupby().boxplot() 生成的子图共享 x/y 轴(GH 20968) 输入/输出 compression='zip'指定生成未压缩 zip 存档的IO 方法中的错误( GH 17778、GH 21144) DataFrame.to_stata()阻止将数据帧导出到缓冲区和大多数类似文件的对象的错误( GH 21041) 错误read_stata()andStataReader无法在 Python 3 上从 Stata 14 文件(dta 版本 118)正确解码 utf-8 字符串(GH 21244) IO JSON 中的错误通过backread_json()读取空 JSON 架构导致错误 ( GH 21287 )orient='table'DataFrame 重塑 与 numpy 标量和元组名称concat()连接时引发错误的错误( GH 21015)Series 警告消息中的错误concat()为未来行为提供了错误的指导(GH 21101) 其他 IPython 中的制表符补全Index不再输出弃用警告 ( GH 21125 ) 阻止 pandas 在未安装 C++ 可再发行组件的 Windows 上使用的错误 ( GH 21106 ) 贡献者# 共有 30 人为此版本贡献了补丁。名字带有“+”的人首次贡献了补丁。 亚当·斯图尔特 亚当·金 + 阿里·西夫吉 查默·洛 + 达米尼·萨提亚 + 欧文博士 加布·费尔南多 + 吉夫林·拉贾雅 杰夫·雷巴克 杰里米·申德尔 + 乔里斯·范登博什 卡扬·戈卡莱 + 凯文·谢泼德 马修·罗斯克 马克斯·坎特 + 李明 皮里·科瓦宁 + 斯特凡诺·钱丘利 汤姆·奥格斯普格 乌德希亚·辛格 + 文焕 威廉·艾德 克里斯-B1 格菲扬 H-维蒂纳里 恩普拉德+ 西克达尔1 + tmnhat2001 礼帽-123 泽特林+