Skip to content

Upgrading pandas 0.16 to 0.17

Breaking0.16.2 → 0.17.1Breaking4New7Changed5Fixed1Other1

BreakingUpgrade verdict

4 breaking changes.

  • Sorting functions behave differently now, so code relying on the old behavior may need updates.
  • HDFStore now keeps all-NaN rows by default instead of dropping them.
  • Operations that relied on automatic TimeSeries broadcasting no longer work.
  • Passing an unparseable date string to to_datetime now raises an error instead of silently returning it.
Top 3 of 4 that need code or config changes
Breaking4
Revamps the sorting API to remove some long-time inconsistencies.
Changes the default for dropna in HDFStore to False, storing all rows even if all NaN.
HDFStoredropna
Removes automatic TimeSeries broadcasting, deprecated since 0.8.0.
TimeSeries
to_datetime now raises on unparseable formats instead of returning the original input.
to_datetime

Generated by DepDelta from published Python source. Not mixed with prose notes.

  • added: export get_versions
  • added: export to_numeric
  • added: variable v
  • removed: variable PY3_2
  • added: function east_asian_len(data, encoding=…, ambiguous_width=…)
  • added: function is_platform_32bit()
  • added: function strlen(data, encoding=…)
  • added: variable PY35
  • removed: method BaseExprVisitor.visit_Call(node, side=…, **kwargs)
  • added: method BaseExprVisitor.visit_Call_35(node, side=…, **kwargs)
  • added: method BaseExprVisitor.visit_Call_legacy(node, side=…, **kwargs)
  • added: class FuncNode(object)
  • added: class MathCall(Op)
  • added: constructor FuncNode(name)
  • added: constructor MathCall(func, args)
  • changed: function nlargest(arr, n, take_last=…) → function nlargest(arr, n, keep=…)
  • changed: function nsmallest(arr, n, take_last=…) → function nsmallest(arr, n, keep=…)
  • changed: function select_n(series, n, take_last, method) → function select_n(series, n, keep, method)
  • changed: function select_n_slow(dropped, n, take_last, method) → function select_n_slow(dropped, n, keep, method)
  • added: function isin(comps, values)
  • removed: variable WidePanel
  • removed: field IndexOpsMixin.str
  • changed: method IndexOpsMixin.drop_duplicates(take_last=…, inplace=…) → method IndexOpsMixin.drop_duplicates(keep=…, inplace=…)
  • changed: method IndexOpsMixin.duplicated(take_last=…) → method IndexOpsMixin.duplicated(keep=…)
  • added: class NoNewAttributesMixin(object)
  • added: method IndexOpsMixin.memory_usage(deep=…)
  • removed: field Categorical.name
  • changed: class CategoricalAccessor(PandasDelegate) → class CategoricalAccessor(PandasDelegate, NoNewAttributesMixin)
  • added: method Categorical.memory_usage(deep=…)
  • added: method Categorical.shift(periods)
  • added: method Categorical.sort_values(inplace=…, ascending=…, na_position=…)
  • removed: class CategoricalDtype(object)
  • removed: class CategoricalDtypeType(type)
  • removed: class UTF8Recoder
  • removed: class UnicodeReader
  • removed: class UnicodeWriter
  • removed: constructor CategoricalDtypeType(name, bases, attrs)
  • removed: constructor UTF8Recoder(f, encoding)
  • removed: constructor UnicodeReader(f, dialect=…, encoding=…, **kwds)
  • removed: constructor UnicodeWriter(f, dialect=…, encoding=…, **kwds)
  • removed: field CategoricalDtype.base
  • removed: field CategoricalDtype.isbuiltin
  • removed: field CategoricalDtype.isnative
  • removed: field CategoricalDtype.itemsize
  • removed: field CategoricalDtype.kind
  • removed: field CategoricalDtype.name
  • removed: field CategoricalDtype.names
  • removed: field CategoricalDtype.num
  • removed: field CategoricalDtype.shape
  • removed: field CategoricalDtype.str
  • removed: field CategoricalDtype.subdtype
  • removed: field CategoricalDtype.type
  • removed: function UnicodeReader(f, dialect=…, encoding=…, **kwds)
  • removed: function UnicodeWriter(f, dialect=…, encoding=…, **kwds)
  • removed: function backfill_1d(values, limit=…, mask=…, dtype=…)
  • removed: function backfill_2d(values, limit=…, mask=…, dtype=…)
  • removed: function interpolate_1d(xvalues, yvalues, method=…, limit=…, fill_value=…, bounds_error=…, order=…)
  • removed: function interpolate_2d(values, method=…, axis=…, limit=…, fill_value=…, dtype=…)
  • removed: function load(path)
  • removed: function pad_1d(values, limit=…, mask=…, dtype=…)
  • removed: function pad_2d(values, limit=…, mask=…, dtype=…)
  • removed: function save(obj, path)
  • removed: method UTF8Recoder.next()
  • removed: method UTF8Recoder.read(bytes=…)
  • removed: method UTF8Recoder.readline()
  • removed: method UnicodeReader.next()
  • removed: method UnicodeWriter.writerow(row)
  • removed: method UnicodeWriter.writerows(rows)
  • changed: function adjoin(space, *lists) → function adjoin(space, *lists, **kwargs)
  • added: function is_datetime64_any_dtype(arr_or_dtype)
  • added: function is_datetime64tz_dtype(arr_or_dtype)
  • added: function is_datetimelike_v_numeric(a, b)
  • added: function is_datetimelike_v_object(a, b)
  • added: function is_datetimetz(array)
  • added: function is_full_slice(obj, l)
  • added: function is_int64_dtype(arr_or_dtype)
  • added: function is_internal_type(value)
  • added: function is_named_tuple(arg)
  • added: function is_numeric_v_string_like(a, b)
  • added: function is_sparse(array)
  • added: function is_string_like(obj)
  • added: variable pc_ambiguous_as_wide_doc
  • added: variable pc_east_asian_width_doc
  • added: class CategoricalDtype(ExtensionDtype)
  • added: class CategoricalDtypeType(type)
  • added: class DatetimeTZDtype(ExtensionDtype)
  • added: class DatetimeTZDtypeType(type)
  • added: class ExtensionDtype(object)
  • added: constructor DatetimeTZDtype(unit, tz=…)
  • added: field CategoricalDtype.base
  • added: field CategoricalDtype.kind
  • added: field CategoricalDtype.name
  • added: field CategoricalDtype.str
  • added: field CategoricalDtype.type
  • added: field DatetimeTZDtype.base
  • added: field DatetimeTZDtype.kind
  • added: field DatetimeTZDtype.num
  • added: field DatetimeTZDtype.str
  • added: field DatetimeTZDtype.type
  • added: field ExtensionDtype.base
  • added: field ExtensionDtype.isbuiltin
  • added: field ExtensionDtype.isnative
  • added: field ExtensionDtype.itemsize
  • added: field ExtensionDtype.kind
  • added: field ExtensionDtype.name
  • added: field ExtensionDtype.names
  • added: field ExtensionDtype.num
  • added: field ExtensionDtype.shape
  • added: field ExtensionDtype.str
  • added: field ExtensionDtype.subdtype
  • added: field ExtensionDtype.type
  • added: property DatetimeTZDtype.name
  • added: static method CategoricalDtype.construct_from_string(string)
  • added: static method DatetimeTZDtype.construct_from_string(string)
  • added: static method ExtensionDtype.is_dtype(dtype)
  • changed: constructor CSVFormatter(obj, path_or_buf=…, sep=…, na_rep=…, float_format=…, cols=…, header=…, index=…, index_label=…, mode=…, nanRep=…, encoding=…, quoting=…, line_terminator=…, chunksize=…, engine=…, tupleize_cols=…, quotechar=…, date_format=…, doublequote=…, escapechar=…, decimal=…) → constructor CSVFormatter(obj, path_or_buf=…, sep=…, na_rep=…, float_format=…, cols=…, header=…, index=…, index_label=…, mode=…, nanRep=…, encoding=…, compression=…, quoting=…, line_terminator=…, chunksize=…, engine=…, tupleize_cols=…, quotechar=…, date_format=…, doublequote=…, escapechar=…, decimal=…)
  • changed: constructor CategoricalFormatter(categorical, buf=…, length=…, na_rep=…, name=…, footer=…) → constructor CategoricalFormatter(categorical, buf=…, length=…, na_rep=…, footer=…)
  • added: class CategoricalArrayFormatter(GenericArrayFormatter)
  • added: class Datetime64TZFormatter(Datetime64Formatter)
  • added: class EastAsianTextAdjustment(TextAdjustment)
  • added: class PeriodArrayFormatter(IntArrayFormatter)
  • added: class TextAdjustment(object)
  • added: constructor CategoricalArrayFormatter(values, *args, **kwargs)
  • added: constructor EastAsianTextAdjustment()
  • added: constructor TextAdjustment()
  • added: method EastAsianTextAdjustment.justify(texts, max_len, mode=…)
  • added: method EastAsianTextAdjustment.len(text)
  • added: method TextAdjustment.adjoin(space, *lists, **kwargs)
  • added: method TextAdjustment.justify(texts, max_len, mode=…)
  • added: method TextAdjustment.len(text)
  • added: variable common_docstring
  • added: variable justify_docstring
  • added: variable return_docstring
  • changed: method DataFrame.drop_duplicates(subset=…, take_last=…, inplace=…) → method DataFrame.drop_duplicates(subset=…, keep=…, inplace=…)
  • changed: method DataFrame.duplicated(subset=…, take_last=…) → method DataFrame.duplicated(subset=…, keep=…)
  • changed: method DataFrame.itertuples(index=…) → method DataFrame.itertuples(index=…, name=…)
  • changed: method DataFrame.memory_usage(index=…) → method DataFrame.memory_usage(index=…, deep=…)
  • changed: method DataFrame.merge(right, how=…, on=…, left_on=…, right_on=…, left_index=…, right_index=…, sort=…, suffixes=…, copy=…) → method DataFrame.merge(right, how=…, on=…, left_on=…, right_on=…, left_index=…, right_index=…, sort=…, suffixes=…, copy=…, indicator=…)
  • changed: method DataFrame.shift(periods=…, freq=…, axis=…, **kwargs) → method DataFrame.shift(periods=…, freq=…, axis=…)
  • changed: method DataFrame.sort_index(axis=…, by=…, ascending=…, inplace=…, kind=…, na_position=…) → method DataFrame.sort_index(axis=…, level=…, ascending=…, inplace=…, kind=…, na_position=…, sort_remaining=…, by=…)
  • changed: method DataFrame.to_csv(path_or_buf=…, sep=…, na_rep=…, float_format=…, columns=…, header=…, index=…, index_label=…, mode=…, encoding=…, quoting=…, quotechar=…, line_terminator=…, chunksize=…, tupleize_cols=…, date_format=…, doublequote=…, escapechar=…, decimal=…, **kwds) → method DataFrame.to_csv(path_or_buf=…, sep=…, na_rep=…, float_format=…, columns=…, header=…, index=…, index_label=…, mode=…, encoding=…, compression=…, quoting=…, quotechar=…, line_terminator=…, chunksize=…, tupleize_cols=…, date_format=…, doublequote=…, escapechar=…, decimal=…, **kwds)
  • changed: method DataFrame.to_excel(excel_writer, sheet_name=…, na_rep=…, float_format=…, columns=…, header=…, index=…, index_label=…, startrow=…, startcol=…, engine=…, merge_cells=…, encoding=…, inf_rep=…) → method DataFrame.to_excel(excel_writer, sheet_name=…, na_rep=…, float_format=…, columns=…, header=…, index=…, index_label=…, startrow=…, startcol=…, engine=…, merge_cells=…, encoding=…, inf_rep=…, verbose=…)
  • changed: method DataFrame.to_gbq(destination_table, project_id=…, chunksize=…, verbose=…, reauth=…) → method DataFrame.to_gbq(destination_table, project_id, chunksize=…, verbose=…, reauth=…, if_exists=…)
  • changed: method DataFrame.to_latex(buf=…, columns=…, col_space=…, colSpace=…, header=…, index=…, na_rep=…, formatters=…, float_format=…, sparsify=…, index_names=…, bold_rows=…, longtable=…, escape=…) → method DataFrame.to_latex(buf=…, columns=…, col_space=…, colSpace=…, header=…, index=…, na_rep=…, formatters=…, float_format=…, sparsify=…, index_names=…, bold_rows=…, column_format=…, longtable=…, escape=…)
  • changed: method DataFrame.to_string(buf=…, columns=…, col_space=…, colSpace=…, header=…, index=…, na_rep=…, formatters=…, float_format=…, sparsify=…, index_names=…, justify=…, line_width=…, max_rows=…, max_cols=…, show_dimensions=…) → method DataFrame.to_string(buf=…, columns=…, col_space=…, header=…, index=…, na_rep=…, formatters=…, float_format=…, sparsify=…, index_names=…, justify=…, line_width=…, max_rows=…, max_cols=…, show_dimensions=…)
  • added: method DataFrame.align(other, join=…, axis=…, level=…, copy=…, fill_value=…, method=…, limit=…, fill_axis=…, broadcast_axis=…)
  • added: method DataFrame.nlargest(n, columns, keep=…)
  • added: method DataFrame.nsmallest(n, columns, keep=…)
  • added: method DataFrame.round(decimals=…, out=…)
  • added: method DataFrame.sort_values(by, axis=…, ascending=…, inplace=…, kind=…, na_position=…)
  • added: property DataFrame.style
  • removed: method NDFrame.load(path)
  • removed: method NDFrame.save(path)
  • changed: method NDFrame.align(other, join=…, axis=…, level=…, copy=…, fill_value=…, method=…, limit=…, fill_axis=…) → method NDFrame.align(other, join=…, axis=…, level=…, copy=…, fill_value=…, method=…, limit=…, fill_axis=…, broadcast_axis=…)
  • changed: method NDFrame.as_blocks() → method NDFrame.as_blocks(copy=…)
  • changed: method NDFrame.describe(percentile_width=…, percentiles=…, include=…, exclude=…) → method NDFrame.describe(percentiles=…, include=…, exclude=…)
  • changed: method NDFrame.interpolate(method=…, axis=…, limit=…, inplace=…, downcast=…, **kwargs) → method NDFrame.interpolate(method=…, axis=…, limit=…, inplace=…, limit_direction=…, downcast=…, **kwargs)
  • changed: method NDFrame.reindex_like(other, method=…, copy=…, limit=…) → method NDFrame.reindex_like(other, method=…, copy=…, limit=…, tolerance=…)
  • changed: method NDFrame.shift(periods=…, freq=…, axis=…, **kwargs) → method NDFrame.shift(periods=…, freq=…, axis=…)
  • changed: method NDFrame.sort_index(axis=…, ascending=…) → method NDFrame.sort_index(axis=…, level=…, ascending=…, inplace=…, kind=…, na_position=…, sort_remaining=…)
  • changed: method NDFrame.tshift(periods=…, freq=…, axis=…, **kwargs) → method NDFrame.tshift(periods=…, freq=…, axis=…)
  • added: method NDFrame.sort_values(by, axis=…, ascending=…, inplace=…, kind=…, na_position=…)
  • removed: method BinGrouper.size()
  • changed: method GroupBy.count(axis=…) → method GroupBy.count()
  • added: class GroupByPlot(PandasObject)
  • added: constructor GroupByPlot(groupby)
  • added: field GroupBy.plot
  • added: method BaseGrouper.transform(values, how, axis=…)
  • added: method DataFrameGroupBy.count()
  • added: method GroupBy.cumprod(axis=…)
  • added: method GroupBy.cumsum(axis=…)
  • added: method GroupBy.irow(i)
  • added: method GroupBy.shift(periods=…, freq=…, axis=…)
  • added: method SeriesGroupBy.count()
  • added: method SeriesGroupBy.nlargest(n=…, keep=…)
  • added: method SeriesGroupBy.nsmallest(n=…, keep=…)
  • added: method SeriesGroupBy.nunique(dropna=…)
  • added: method SeriesGroupBy.value_counts(normalize=…, sort=…, ascending=…, bins=…, dropna=…)
  • changed: class Index(IndexOpsMixin, PandasObject) → class Index(IndexOpsMixin, StringAccessorMixin, PandasObject)
  • changed: method Index.drop_duplicates(take_last=…) → method Index.drop_duplicates(keep=…)
  • changed: method Index.duplicated(take_last=…) → method Index.duplicated(keep=…)
  • changed: method Index.get_indexer(target, method=…, limit=…) → method Index.get_indexer(target, method=…, limit=…, tolerance=…)
  • changed: method Index.get_loc(key, method=…) → method Index.get_loc(key, method=…, tolerance=…)
  • changed: method Index.reindex(target, method=…, level=…, limit=…) → method Index.reindex(target, method=…, level=…, limit=…, tolerance=…)
  • changed: method Index.take(indexer, axis=…) → method Index.take(indices, axis=…, allow_fill=…, fill_value=…)
  • added: method Index.dtype_str()
  • added: method Index.fillna(value=…, downcast=…)
  • added: method Index.hasnans()
  • added: method Index.sort_values(return_indexer=…, ascending=…)
  • added: method Index.sortlevel(level=…, ascending=…, sort_remaining=…)
  • removed: method CategoricalBlock.putmask(mask, new, align=…, inplace=…)
  • removed: method DatetimeBlock.fillna(value, limit=…, inplace=…, downcast=…)
  • removed: method JoinUnit.needs_block_conversion()
  • removed: property CategoricalBlock.shape
  • removed: property SingleBlockManager.values
  • changed: constructor NonConsolidatableMixIn(values, placement, ndim=…, fastpath=…) → constructor NonConsolidatableMixIn(values, placement, ndim=…, fastpath=…, **kwargs)
  • changed: constructor ObjectBlock(values, ndim=…, fastpath=…, placement=…) → constructor ObjectBlock(values, ndim=…, fastpath=…, placement=…, **kwargs)
  • changed: method Block.apply(func, **kwargs) → method Block.apply(func, mgr=…, **kwargs)
  • changed: method Block.copy(deep=…) → method Block.copy(deep=…, mgr=…)
  • changed: method Block.diff(n, axis=…) → method Block.diff(n, axis=…, mgr=…)
  • changed: method Block.downcast(dtypes=…) → method Block.downcast(dtypes=…, mgr=…)
  • changed: method Block.eval(func, other, raise_on_error=…, try_cast=…) → method Block.eval(func, other, raise_on_error=…, try_cast=…, mgr=…)
  • changed: method Block.fillna(value, limit=…, inplace=…, downcast=…) → method Block.fillna(value, limit=…, inplace=…, downcast=…, mgr=…)
  • changed: method Block.interpolate(method=…, axis=…, index=…, values=…, inplace=…, limit=…, fill_value=…, coerce=…, downcast=…, **kwargs) → method Block.interpolate(method=…, axis=…, index=…, values=…, inplace=…, limit=…, limit_direction=…, fill_value=…, coerce=…, downcast=…, mgr=…, **kwargs)
  • changed: method Block.putmask(mask, new, align=…, inplace=…) → method Block.putmask(mask, new, align=…, inplace=…, axis=…, transpose=…, mgr=…)
  • changed: method Block.replace(to_replace, value, inplace=…, filter=…, regex=…) → method Block.replace(to_replace, value, inplace=…, filter=…, regex=…, convert=…, mgr=…)
  • changed: method Block.reshape_nd(labels, shape, ref_items) → method Block.reshape_nd(labels, shape, ref_items, mgr=…)
  • changed: method Block.setitem(indexer, value) → method Block.setitem(indexer, value, mgr=…)
  • changed: method Block.shift(periods, axis=…) → method Block.shift(periods, axis=…, mgr=…)
  • changed: method Block.where(other, cond, align=…, raise_on_error=…, try_cast=…) → method Block.where(other, cond, align=…, raise_on_error=…, try_cast=…, axis=…, transpose=…, mgr=…)
  • changed: method BlockManager.apply(f, axes=…, filter=…, do_integrity_check=…, **kwargs) → method BlockManager.apply(f, axes=…, filter=…, do_integrity_check=…, consolidate=…, **kwargs)
  • changed: method BlockManager.copy(deep=…) → method BlockManager.copy(deep=…, mgr=…)
  • changed: method BlockManager.replace_list(src_list, dest_list, inplace=…, regex=…) → method BlockManager.replace_list(src_list, dest_list, inplace=…, regex=…, mgr=…)
  • changed: method BoolBlock.replace(to_replace, value, inplace=…, filter=…, regex=…) → method BoolBlock.replace(to_replace, value, inplace=…, filter=…, regex=…, mgr=…)
  • changed: method CategoricalBlock.fillna(value, limit=…, inplace=…, downcast=…) → method CategoricalBlock.fillna(value, limit=…, inplace=…, downcast=…, mgr=…)
  • changed: method ObjectBlock.convert(convert_dates=…, convert_numeric=…, convert_timedeltas=…, copy=…, by_item=…) → method ObjectBlock.convert(*args, **kwargs)
  • changed: method ObjectBlock.replace(to_replace, value, inplace=…, filter=…, regex=…) → method ObjectBlock.replace(to_replace, value, inplace=…, filter=…, regex=…, convert=…, mgr=…)
  • changed: method SparseBlock.copy(deep=…) → method SparseBlock.copy(deep=…, mgr=…)
  • changed: method SparseBlock.fillna(value, limit=…, inplace=…, downcast=…) → method SparseBlock.fillna(value, limit=…, inplace=…, downcast=…, mgr=…)
  • changed: method SparseBlock.make_block_same_class(values, placement, sparse_index=…, kind=…, dtype=…, fill_value=…, copy=…, fastpath=…) → method SparseBlock.make_block_same_class(values, placement, sparse_index=…, kind=…, dtype=…, fill_value=…, copy=…, fastpath=…, **kwargs)
  • changed: method SparseBlock.shift(periods, axis=…) → method SparseBlock.shift(periods, axis=…, mgr=…)
  • added: class DatetimeTZBlock(NonConsolidatableMixIn, DatetimeBlock)
  • added: constructor DatetimeTZBlock(values, placement, ndim=…, **kwargs)
  • added: field Block.is_datetimetz
  • added: field DatetimeTZBlock.is_datetimetz
  • added: method Block.external_values(dtype=…)
  • added: method Block.internal_values(dtype=…)
  • added: method Block.make_block(values, placement=…, ndim=…, **kwargs)
  • added: method Block.to_object_block(mgr)
  • added: method CategoricalBlock.convert(copy=…, **kwargs)
  • added: method CategoricalBlock.shift(periods, axis=…, mgr=…)
  • added: method DatetimeTZBlock.external_values()
  • added: method DatetimeTZBlock.get_values(dtype=…)
  • added: method DatetimeTZBlock.replace(*args, **kwargs)
  • added: method DatetimeTZBlock.shift(periods, axis=…, mgr=…)
  • added: method DatetimeTZBlock.to_object_block(mgr)
  • added: method NonConsolidatableMixIn.putmask(mask, new, align=…, inplace=…, axis=…, transpose=…, mgr=…)
  • added: method SingleBlockManager.external_values()
  • added: method SingleBlockManager.internal_values()
  • added: method SparseBlock.to_dense()
  • added: method TimeDeltaBlock.fillna(value, **kwargs)
  • added: property NonConsolidatableMixIn.shape
  • added: function backfill_1d(values, limit=…, mask=…, dtype=…)
  • added: function backfill_2d(values, limit=…, mask=…, dtype=…)
  • added: function interpolate_1d(xvalues, yvalues, method=…, limit=…, limit_direction=…, fill_value=…, bounds_error=…, order=…, **kwargs)
  • added: function interpolate_2d(values, method=…, axis=…, limit=…, fill_value=…, dtype=…)
  • added: function pad_1d(values, limit=…, mask=…, dtype=…)
  • added: function pad_2d(values, limit=…, mask=…, dtype=…)
  • removed: function nanmax(values, axis=…, skipna=…)
  • removed: function nanmin(values, axis=…, skipna=…)
  • added: variable nanmax
  • added: variable nanmin
  • removed: variable LongPanel
  • removed: variable WidePanel
  • changed: method Panel.tshift(periods=…, freq=…, axis=…, **kwds) → method Panel.tshift(periods=…, freq=…, axis=…)
  • added: class LongPanel(DataFrame)
  • added: class WidePanel(Panel)
  • added: constructor LongPanel(*args, **kwargs)
  • added: constructor WidePanel(*args, **kwargs)
  • added: method Panel.align(other, **kwargs)
  • removed: field Series.iget
  • removed: field Series.iget_value
  • removed: field Series.irow
  • removed: method Series.ptp(axis=…, out=…)
  • changed: class Series(base.IndexOpsMixin, generic.NDFrame) → class Series(base.IndexOpsMixin, strings.StringAccessorMixin, generic.NDFrame)
  • changed: method Series.drop_duplicates(take_last=…, inplace=…) → method Series.drop_duplicates(keep=…, inplace=…)
  • changed: method Series.duplicated(take_last=…) → method Series.duplicated(keep=…)
  • changed: method Series.nlargest(n=…, take_last=…) → method Series.nlargest(n=…, keep=…)
  • changed: method Series.nsmallest(n=…, take_last=…) → method Series.nsmallest(n=…, keep=…)
  • changed: method Series.shift(periods=…, freq=…, axis=…, **kwargs) → method Series.shift(periods=…, freq=…, axis=…)
  • changed: method Series.sort_index(ascending=…) → method Series.sort_index(axis=…, level=…, ascending=…, inplace=…, sort_remaining=…)
  • added: method Series.align(other, join=…, axis=…, level=…, copy=…, fill_value=…, method=…, limit=…, fill_axis=…, broadcast_axis=…)
  • added: method Series.iget(i, axis=…)
  • added: method Series.iget_value(i, axis=…)
  • added: method Series.irow(i, axis=…)
  • added: method Series.memory_usage(index=…, deep=…)
  • added: method Series.sort_values(axis=…, ascending=…, inplace=…, kind=…, na_position=…)
  • changed: class StringMethods(object) → class StringMethods(NoNewAttributesMixin)
  • changed: constructor StringMethods(series) → constructor StringMethods(data)
  • added: class StringAccessorMixin(object)
  • added: field StringAccessorMixin.str
  • added: class Styler(object)
  • added: constructor Styler(data, precision=…, table_styles=…, uuid=…, caption=…, table_attributes=…)
  • added: field Styler.template
  • added: method Styler.apply(func, axis=…, subset=…, **kwargs)
  • added: method Styler.applymap(func, subset=…, **kwargs)
  • added: method Styler.background_gradient(cmap=…, low=…, high=…, axis=…, subset=…)
  • added: method Styler.bar(subset=…, axis=…, color=…, width=…)
  • added: method Styler.clear()
  • added: method Styler.export()
  • added: method Styler.highlight_max(subset=…, color=…, axis=…)
  • added: method Styler.highlight_min(subset=…, color=…, axis=…)
  • added: method Styler.highlight_null(null_color=…)
  • added: method Styler.render()
  • added: method Styler.set_caption(caption)
  • added: method Styler.set_precision(precision)
  • added: method Styler.set_properties(subset=…, **kwargs)
  • added: method Styler.set_table_attributes(attributes)
  • added: method Styler.set_table_styles(table_styles)
  • added: method Styler.set_uuid(uuid)
  • added: method Styler.use(styles)
  • added: variable has_mpl
  • added: variable msg
  • added: variable no_mpl_message
  • changed: function get_filepath_or_buffer(filepath_or_buffer, encoding=…) → function get_filepath_or_buffer(filepath_or_buffer, encoding=…, compression=…)
  • changed: function maybe_read_encoded_stream(reader, encoding=…) → function maybe_read_encoded_stream(reader, encoding=…, compression=…)
  • added: class BotoFileLikeReader(key.Key)
  • added: class UTF8Recoder
  • added: class UnicodeReader
  • added: class UnicodeWriter
  • added: constructor BotoFileLikeReader(*args, **kwargs)
  • added: constructor UTF8Recoder(f, encoding)
  • added: constructor UnicodeReader(f, dialect=…, encoding=…, **kwds)
  • added: constructor UnicodeWriter(f, dialect=…, encoding=…, **kwds)
  • added: function UnicodeReader(f, dialect=…, encoding=…, **kwds)
  • added: function UnicodeWriter(f, dialect=…, encoding=…, **kwds)
  • added: method BotoFileLikeReader.close(*args, **kwargs)
  • added: method BotoFileLikeReader.next()
  • added: method BotoFileLikeReader.read(*args, **kwargs)
  • added: method BotoFileLikeReader.readline()
  • added: method BotoFileLikeReader.seekable()
  • added: method UTF8Recoder.next()
  • added: method UTF8Recoder.read(bytes=…)
  • added: method UTF8Recoder.readline()
  • added: method UnicodeReader.next()
  • added: method UnicodeWriter.writerow(row)
  • added: method UnicodeWriter.writerows(rows)
  • changed: function read_excel(io, sheetname=…, **kwds) → function read_excel(io, sheetname=…, header=…, skiprows=…, skip_footer=…, index_col=…, parse_cols=…, parse_dates=…, date_parser=…, na_values=…, thousands=…, convert_float=…, has_index_names=…, converters=…, engine=…, **kwds)
  • changed: method ExcelFile.parse(sheetname=…, header=…, skiprows=…, skip_footer=…, index_col=…, parse_cols=…, parse_dates=…, date_parser=…, na_values=…, thousands=…, chunksize=…, convert_float=…, has_index_names=…, converters=…, **kwds) → method ExcelFile.parse(sheetname=…, header=…, skiprows=…, skip_footer=…, index_col=…, parse_cols=…, parse_dates=…, date_parser=…, na_values=…, thousands=…, convert_float=…, has_index_names=…, converters=…, **kwds)
  • removed: class AccessDeniedException(PandasError, IOError)
  • removed: class InvalidQueryException(PandasError, IOError)
  • removed: class TermsOfServiceNotAcceptedException(PandasError, IOError)
  • removed: class UnknownGBQException(PandasError, IOError)
  • changed: class InvalidColumnOrder(PandasError, IOError) → class InvalidColumnOrder(PandasError, ValueError)
  • changed: class InvalidPageToken(PandasError, IOError) → class InvalidPageToken(PandasError, ValueError)
  • changed: class NotFoundException(PandasError, IOError) → class NotFoundException(PandasError, ValueError)
  • changed: function read_gbq(query, project_id=…, index_col=…, col_order=…, reauth=…) → function read_gbq(query, project_id=…, index_col=…, col_order=…, reauth=…, verbose=…)
  • changed: function to_gbq(dataframe, destination_table, project_id=…, chunksize=…, verbose=…, reauth=…) → function to_gbq(dataframe, destination_table, project_id, chunksize=…, verbose=…, reauth=…, if_exists=…)
  • changed: method GbqConnector.get_service(credentials) → static method GbqConnector.get_service(credentials)
  • changed: method GbqConnector.run_query(query) → method GbqConnector.run_query(query, verbose=…)
  • added: class AccessDenied(PandasError, ValueError)
  • added: class DatasetCreationError(PandasError, ValueError)
  • added: class GenericGBQException(PandasError, ValueError)
  • added: class InvalidSchema(PandasError, ValueError)
  • added: class StreamingInsertError(PandasError, ValueError)
  • added: class TableCreationError(PandasError, ValueError)
  • added: method GbqConnector.delete_and_recreate_table(dataset_id, table_id, table_schema, verbose)
  • added: method GbqConnector.test_google_api_imports()
  • added: method GbqConnector.verify_schema(dataset_id, table_id, schema)
  • added: static method GbqConnector.process_http_error(ex)
  • added: static method GbqConnector.process_insert_errors(insert_errors, verbose)
  • changed: function read_html(io, match=…, flavor=…, header=…, index_col=…, skiprows=…, infer_types=…, attrs=…, parse_dates=…, tupleize_cols=…, thousands=…, encoding=…) → function read_html(io, match=…, flavor=…, header=…, index_col=…, skiprows=…, attrs=…, parse_dates=…, tupleize_cols=…, thousands=…, encoding=…)
  • changed: constructor Packer(default=…, encoding=…, unicode_errors=…, use_single_float=…) → constructor Packer(default=…, encoding=…, unicode_errors=…, use_single_float=…, autoreset=…, use_bin_type=…)
  • changed: constructor Unpacker(file_like=…, read_size=…, use_list=…, object_hook=…, object_pairs_hook=…, list_hook=…, encoding=…, unicode_errors=…, max_buffer_size=…) → constructor Unpacker(file_like=…, read_size=…, use_list=…, object_hook=…, object_pairs_hook=…, list_hook=…, encoding=…, unicode_errors=…, max_buffer_size=…, ext_hook=…)
  • changed: function pack(o, default=…, encoding=…, unicode_errors=…, use_single_float=…) → function pack(o, default=…, encoding=…, unicode_errors=…, use_single_float=…, autoreset=…, use_bin_type=…)
  • changed: function unpack(packed, object_hook=…, list_hook=…, use_list=…, encoding=…, unicode_errors=…, object_pairs_hook=…) → function unpack(packed, object_hook=…, list_hook=…, use_list=…, encoding=…, unicode_errors=…, object_pairs_hook=…, max_buffer_size=…, ext_hook=…)
  • removed: method DataCol.convert_string_data(data, itemsize, encoding)
  • changed: function read_hdf(path_or_buf, key, **kwargs) → function read_hdf(path_or_buf, key=…, **kwargs)
  • added: method DataCol.set_atom_complex(block)
  • added: method DataCol.set_atom_datetime64tz(block, info, values=…)
  • added: class XportReader(object)
  • added: constructor XportReader(filepath_or_buffer, index=…, encoding=…, chunksize=…)
  • added: function read_sas(filepath_or_buffer, format=…, index=…, encoding=…, chunksize=…, iterator=…)
  • added: method XportReader.get_chunk(size=…)
  • added: method XportReader.read(nrows=…)
  • added: method StataReader.close()
  • added: class ExtType(namedtuple('ExtType', 'code data'))
  • added: export Packer
  • added: export Unpacker
  • added: export unpack
  • added: export unpackb
  • added: export version
  • added: function pack(o, stream, **kwargs)
  • added: function packb(o, **kwargs)
  • added: variable dump
  • added: variable dumps
  • added: variable load
  • added: variable loads
  • added: class BufferFull(UnpackException)
  • added: class ExtraData(ValueError)
  • added: class OutOfData(UnpackException)
  • added: class PackException(Exception)
  • added: class PackValueError(PackException, ValueError)
  • added: class UnpackException(Exception)
  • added: class UnpackValueError(UnpackException, ValueError)
  • added: constructor ExtraData(unpacked, extra)
  • removed: function df_to_manager(sdf, columns, index)
  • added: function to_manager(sdf, columns, index)
  • removed: variable SparseTimeSeries
  • changed: method SparseSeries.shift(periods, freq=…, **kwds) → method SparseSeries.shift(periods, freq=…)
  • added: class SparseTimeSeries(SparseSeries)
  • added: constructor SparseTimeSeries(*args, **kwargs)
  • changed: function merge(left, right, how=…, on=…, left_on=…, right_on=…, left_index=…, right_index=…, sort=…, suffixes=…, copy=…) → function merge(left, right, how=…, on=…, left_on=…, right_on=…, left_index=…, right_index=…, sort=…, suffixes=…, copy=…, indicator=…)
  • changed: function pivot_table(data, values=…, index=…, columns=…, aggfunc=…, fill_value=…, margins=…, dropna=…) → function pivot_table(data, values=…, index=…, columns=…, aggfunc=…, fill_value=…, margins=…, dropna=…, margins_name=…)
  • removed: property BarPlot.orientation
  • removed: property HexBinPlot.nseries
  • removed: property ScatterPlot.nseries
  • changed: class HexBinPlot(MPLPlot) → class HexBinPlot(PlanePlot)
  • changed: class ScatterPlot(MPLPlot) → class ScatterPlot(PlanePlot)
  • changed: constructor ScatterPlot(data, x, y, c=…, **kwargs) → constructor ScatterPlot(data, x, y, s=…, c=…, **kwargs)
  • changed: function parallel_coordinates(frame, class_column, cols=…, ax=…, color=…, use_columns=…, xticks=…, colormap=…, axvlines=…, **kwds) → function parallel_coordinates(frame, class_column, cols=…, ax=…, color=…, use_columns=…, xticks=…, colormap=…, axvlines=…, axvlines_kwds=…, **kwds)
  • added: class BarhPlot(BarPlot)
  • added: class BasePlotMethods(PandasObject)
  • added: class FramePlotMethods(BasePlotMethods)
  • added: class PlanePlot(MPLPlot)
  • added: class SeriesPlotMethods(BasePlotMethods)
  • added: constructor BasePlotMethods(data)
  • added: constructor PlanePlot(data, x, y, **kwargs)
  • added: field BarPlot.orientation
  • added: field BarhPlot.orientation
  • added: field FramePlotMethods.density
  • added: field SeriesPlotMethods.density
  • added: method FramePlotMethods.area(x=…, y=…, **kwds)
  • added: method FramePlotMethods.bar(x=…, y=…, **kwds)
  • added: method FramePlotMethods.barh(x=…, y=…, **kwds)
  • added: method FramePlotMethods.box(by=…, **kwds)
  • added: method FramePlotMethods.hexbin(x, y, C=…, reduce_C_function=…, gridsize=…, **kwds)
  • added: method FramePlotMethods.hist(by=…, bins=…, **kwds)
  • added: method FramePlotMethods.kde(**kwds)
  • added: method FramePlotMethods.line(x=…, y=…, **kwds)
  • added: method FramePlotMethods.pie(y=…, **kwds)
  • added: method FramePlotMethods.scatter(x, y, s=…, c=…, **kwds)
  • added: method SeriesPlotMethods.area(**kwds)
  • added: method SeriesPlotMethods.bar(**kwds)
  • added: method SeriesPlotMethods.barh(**kwds)
  • added: method SeriesPlotMethods.box(**kwds)
  • added: method SeriesPlotMethods.hist(bins=…, **kwds)
  • added: method SeriesPlotMethods.kde(**kwds)
  • added: method SeriesPlotMethods.line(**kwds)
  • added: method SeriesPlotMethods.pie(**kwds)
  • added: property PlanePlot.nseries
  • added: static method MPLPlot.mpl_ge_1_3_1()
  • added: static method MPLPlot.mpl_ge_1_5_0()
  • added: variable colors
  • added: function to_numeric(arg, errors=…)
  • removed: method DatetimeIndexOpsMixin.order(return_indexer=…, ascending=…)
  • changed: method DatetimeIndexOpsMixin.take(indices, axis=…) → method DatetimeIndexOpsMixin.take(indices, axis=…, allow_fill=…, fill_value=…)
  • added: class DatelikeOps(object)
  • added: method DatelikeOps.strftime(date_format)
  • added: method DatetimeIndexOpsMixin.sort_values(return_indexer=…, ascending=…)
  • changed: class Properties(PandasDelegate) → class Properties(PandasDelegate, NoNewAttributesMixin)
  • changed: constructor Properties(values, index) → constructor Properties(values, index, name, orig=…)
  • removed: function get_reso_string(reso)
  • added: static method Resolution.get_freq_group(resostr)
  • added: method AbstractHolidayCalendar.rule_from_name(name)
  • removed: property DatetimeIndex.dtype
  • changed: class DatetimeIndex(DatetimeIndexOpsMixin, Int64Index) → class DatetimeIndex(DatelikeOps, DatetimeIndexOpsMixin, Int64Index)
  • changed: function bdate_range(start=…, end=…, periods=…, freq=…, tz=…, normalize=…, name=…, closed=…) → function bdate_range(start=…, end=…, periods=…, freq=…, tz=…, normalize=…, name=…, closed=…, **kwargs)
  • changed: function date_range(start=…, end=…, periods=…, freq=…, tz=…, normalize=…, name=…, closed=…) → function date_range(start=…, end=…, periods=…, freq=…, tz=…, normalize=…, name=…, closed=…, **kwargs)
  • changed: method DatetimeIndex.get_loc(key, method=…) → method DatetimeIndex.get_loc(key, method=…, tolerance=…)
  • added: method DatetimeIndex.dtype()
  • added: method DatetimeIndex.to_perioddelta(freq)
  • added: method BusinessDay.apply_index(i)
  • added: method CustomBusinessDay.apply_index(i)
  • added: method DateOffset.apply_index(i)
  • added: method MonthBegin.apply_index(i)
  • added: method MonthEnd.apply_index(i)
  • added: method QuarterBegin.apply_index(i)
  • added: method QuarterEnd.apply_index(i)
  • added: method Week.apply_index(i)
  • added: method YearBegin.apply_index(i)
  • added: method YearEnd.apply_index(i)
  • removed: property PeriodIndex.freqstr
  • changed: class PeriodIndex(DatetimeIndexOpsMixin, Int64Index) → class PeriodIndex(DatelikeOps, DatetimeIndexOpsMixin, Int64Index)
  • changed: method PeriodIndex.get_indexer(target, method=…, limit=…) → method PeriodIndex.get_indexer(target, method=…, limit=…, tolerance=…)
  • changed: method PeriodIndex.get_loc(key, method=…) → method PeriodIndex.get_loc(key, method=…, tolerance=…)
  • added: method PeriodIndex.dtype_str()
  • changed: function tsplot(series, plotf, **kwargs) → function tsplot(series, plotf, ax=…, **kwargs)
  • changed: method TimedeltaIndex.get_loc(key, method=…) → method TimedeltaIndex.get_loc(key, method=…, tolerance=…)
  • added: method TimedeltaIndex.total_seconds()
  • removed: variable abbrevs
  • changed: function to_timedelta(arg, unit=…, box=…, coerce=…) → function to_timedelta(arg, unit=…, box=…, errors=…, coerce=…)
  • removed: class DateParseError(ValueError)
  • removed: function dateutil_parse(timestr, default, ignoretz=…, tzinfos=…, **kwargs)
  • removed: variable has_time
  • removed: variable qpat1
  • removed: variable qpat1full
  • removed: variable qpat2
  • removed: variable qpat2full
  • removed: variable ypat
  • changed: function to_datetime(arg, errors=…, dayfirst=…, utc=…, box=…, format=…, exact=…, coerce=…, unit=…, infer_datetime_format=…) → function to_datetime(arg, errors=…, dayfirst=…, yearfirst=…, utc=…, box=…, format=…, exact=…, coerce=…, unit=…, infer_datetime_format=…)
  • added: variable DateParseError
  • changed: function deprecate_kwarg(old_arg_name, new_arg_name, mapping=…) → function deprecate_kwarg(old_arg_name, new_arg_name, mapping=…, stacklevel=…)
  • removed: variable short_version
  • removed: variable version