Skip to content

CLN refactor core indexes #37582

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 27 commits into from
Dec 22, 2020
Merged
Changes from 1 commit
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
5685cb1
refactor core indexes
MarcoGorelli Nov 2, 2020
7695e66
parens
MarcoGorelli Nov 2, 2020
d5d4530
reversions
MarcoGorelli Nov 2, 2020
23be6a5
make pythonic
MarcoGorelli Nov 2, 2020
b3d1dec
try moving outside try
MarcoGorelli Nov 2, 2020
1b0d92c
Merge remote-tracking branch 'upstream/master' into refactor-core-ind…
MarcoGorelli Nov 4, 2020
e0d36eb
move out of try-except
MarcoGorelli Nov 4, 2020
fb2bea0
Merge remote-tracking branch 'upstream/master' into refactor-core-ind…
MarcoGorelli Nov 5, 2020
26c419e
keep asi8.min() inside try-except
MarcoGorelli Nov 5, 2020
d076431
Merge remote-tracking branch 'upstream/master' into refactor-core-ind…
MarcoGorelli Nov 6, 2020
bb0fc86
Merge remote-tracking branch 'upstream/master' into refactor-core-ind…
MarcoGorelli Nov 8, 2020
445f2e9
empty check
MarcoGorelli Nov 8, 2020
e8f117c
similar simplification in max
MarcoGorelli Nov 8, 2020
f1f1deb
Merge remote-tracking branch 'upstream/master' into refactor-core-ind…
MarcoGorelli Nov 9, 2020
e860c45
Merge remote-tracking branch 'upstream/master' into refactor-core-ind…
MarcoGorelli Nov 23, 2020
a58de56
fix merge error
MarcoGorelli Nov 23, 2020
98672b1
Merge remote-tracking branch 'upstream/master' into refactor-core-ind…
MarcoGorelli Nov 24, 2020
be80fb7
wip
MarcoGorelli Nov 24, 2020
dc0b84e
early return
MarcoGorelli Nov 24, 2020
4074a88
parens
MarcoGorelli Nov 24, 2020
00d6be0
:art:
MarcoGorelli Nov 24, 2020
d073da9
Merge remote-tracking branch 'upstream/master' into refactor-core-ind…
MarcoGorelli Nov 29, 2020
fdafd36
Merge remote-tracking branch 'upstream/master' into refactor-core-ind…
MarcoGorelli Dec 6, 2020
01c4a06
Merge remote-tracking branch 'upstream/master' into refactor-core-ind…
MarcoGorelli Dec 9, 2020
1b254ae
coverage
MarcoGorelli Dec 9, 2020
dffc440
:twisted_rightwards_arrows: Merge remote-tracking branch 'upstream/ma…
MarcoGorelli Dec 16, 2020
63a8575
Merge remote-tracking branch 'upstream/master' into refactor-core-ind…
MarcoGorelli Dec 22, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 10 additions & 14 deletions pandas/core/indexes/datetimelike.py
Original file line number Diff line number Diff line change
Expand Up @@ -289,21 +289,17 @@ def max(self, axis=None, skipna=True, *args, **kwargs):
return self._na_value

i8 = self.asi8
try:
# quick check
if len(i8) and self.is_monotonic and i8[-1] != iNaT:
return self._data._box_func(i8[-1])

if self.hasnans:
if skipna:
max_stamp = self[~self._isnan].asi8.max()
else:
return self._na_value
else:
max_stamp = i8.max()
return self._data._box_func(max_stamp)
except ValueError:

# quick check
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we could just return self._data.max(...). Downside is that doesn't take advantage of caching

if self.is_monotonic and i8[-1] != iNaT:
return self._data._box_func(i8[-1])
if self.hasnans and skipna and not self[~self._isnan].empty:
max_stamp = self[~self._isnan].asi8.max()
elif not self.hasnans:
max_stamp = i8.max()
else:
return self._na_value
return self._data._box_func(max_stamp)

def argmax(self, axis=None, skipna=True, *args, **kwargs):
"""
Expand Down