rolling, expanding, resample, and ewm* all changed to behave more like groupby. This PR adds backwards-compat shims to support both the new and old syntax. This change is the only one that required a material amount of work to preserve compat with pandas 0.17.

.loc with an integer argument on an index of Asset objects no longer works in pandas 0.18. This is probably the change I'm most worried about from a user breakage perspective.

Timezone information is now preserved in Series and DataFrame columns. This means that some fields that were previously tz-naive may now be tz-aware, leading to breakages. This is the second most worrisome change for user breakage.

Group-label conventions for DataFrame/Series.nth() changed in pandas 0.18. The only affected usage has been re-written in a way that's 2x faster, so not much cost here. See Also: pandas-dev/pandas#13666.

Passing null-ish values to pd.categorical is deprecated in pandas 0.18. This means, in particular, that the default missing value of None cannot be preserved in pipeline outputs for string-dtype Pipeline columns is no longer appropriate if we want to avoid pandas warnings and/or future breakages. This PR currently deprecates support for custom string-dtype missing values, and makes string-dtyped categorical output provide the pandas-recommended value of NaN. A future change should likely remove support for custom missing values entirely in favor of using categoricals with NaN missing values for both strings and ints. This is the code change I'm most conflicted about in this PR. I think a better change might be to just silence the warning for now, and remove support for missing values in one consistent change. As-is, the semantics for column missing values is inconsistent for strings and every other dtype. @llllllllll I'd be interested in your thoughts on this. See Also: pandas-dev/pandas#13648

DataFrame.sort was deprecated in favor of sort_values. This is trivial to fix.

DataFrame.convert_objects was deprecated in favor of type-specific functions. We only had one, unnecessary invocation of convert_objects.

DataFrame deprecated indexing with a float on .iloc. We only did this in one place, and it was almost certainly a bug.

Numpy:

np.full started warning that passing an integer value would produce an integer array in the future (it currently produces a float array). This PR fixes most of those warnings by passing explicit float values, or passing an explicit dtype. This is probably the largest change in LoC, but there's no cost to users.

np.NaT started warning on comparisons with itself that NaT != NaT will be true in the future. An isnat function has been added to numpy_utils, and it's been used anywhere that we were previously checking for NaT. See Also numpy/numpy#5610.

Pandas 0.18 doesn't like having null-ish values in categoricals. Fixing
this properly requires re-thinking the semantics for missing_value on
pipeline terms, so we're punting on that until after we've upgraded to
0.18.

Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.