Skip to content
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

REGR: Remove groupby's __getattribute__ for nth #49676

Merged
merged 2 commits into from Nov 15, 2022

Conversation

rhshadrach
Copy link
Member

@rhshadrach rhshadrach commented Nov 12, 2022

  • closes #xxxx (Replace xxxx with the GitHub issue number)
  • Tests added and passed if fixing a bug or adding a new feature
  • All code checks passed.
  • Added type annotations to new arguments/methods/functions.
  • Added an entry in the latest doc/source/whatsnew/vX.X.X.rst file if fixing a bug or adding a new feature.

The __getattribute__ was added in 1.4 by #44688. Also makes stepping through code with a debugger a bit easier

       before           after         ratio
     [289f32df]       [ce18b3c6]
     <enforce_numeric_only_resampler~1>       <remove_nth_getattribute>
-      55.8±0.3μs       50.7±0.4μs     0.91  groupby.GroupByMethods.time_dtype_as_field('uint', 'var', 'direct', 1)
-      62.8±0.7μs       57.1±0.7μs     0.91  groupby.GroupByMethods.time_dtype_as_group('uint', 'mean', 'direct', 1)
-        71.4±1μs       64.8±0.6μs     0.91  groupby.GroupByMethods.time_dtype_as_group('int', 'last', 'direct', 1)
-      42.4±0.2μs       38.5±0.2μs     0.91  groupby.GroupByMethods.time_dtype_as_field('object', 'head', 'direct', 5)
-      72.1±0.6μs       65.4±0.8μs     0.91  groupby.GroupByMethods.time_dtype_as_group('float', 'prod', 'direct', 1)
-      72.9±0.3μs       66.1±0.5μs     0.91  groupby.GroupByMethods.time_dtype_as_field('datetime', 'min', 'direct', 1)
-        38.9±1μs      35.3±0.07μs     0.91  groupby.GroupByMethods.time_dtype_as_field('uint', 'head', 'direct', 1)
-        60.3±2μs         54.7±1μs     0.91  groupby.GroupByMethods.time_dtype_as_field('int16', 'mean', 'direct', 1)
-         245±6μs          223±7μs     0.91  groupby.GroupByMethods.time_dtype_as_field('int16', 'count', 'transformation', 1)
-      56.9±0.3μs       51.6±0.2μs     0.91  groupby.GroupByMethods.time_dtype_as_field('datetime', 'all', 'direct', 1)
-        61.9±2μs         56.1±1μs     0.91  groupby.GroupByMethods.time_dtype_as_field('float', 'first', 'direct', 1)
-      40.8±0.4μs       37.0±0.3μs     0.91  groupby.GroupByMethods.time_dtype_as_field('uint', 'head', 'direct', 5)
-      54.7±0.2μs       49.6±0.6μs     0.91  groupby.GroupByMethods.time_dtype_as_field('int16', 'var', 'direct', 1)
-      58.5±0.5μs         53.0±1μs     0.91  groupby.GroupByMethods.time_dtype_as_field('float', 'var', 'direct', 5)
-        60.1±2μs         54.5±1μs     0.91  groupby.GroupByMethods.time_dtype_as_field('int16', 'tail', 'direct', 5)
-         251±1μs          227±4μs     0.91  groupby.GroupByMethods.time_dtype_as_field('int', 'std', 'transformation', 1)
-      39.7±0.5μs       36.0±0.1μs     0.91  groupby.GroupByMethods.time_dtype_as_field('datetime', 'count', 'direct', 5)
-      61.1±0.1μs         55.3±1μs     0.91  groupby.GroupByMethods.time_dtype_as_field('uint', 'tail', 'direct', 5)
-         278±2μs          252±6μs     0.91  groupby.GroupByMethods.time_dtype_as_field('int16', 'mean', 'transformation', 1)
-      71.6±0.3μs       64.8±0.4μs     0.91  groupby.GroupByMethods.time_dtype_as_field('datetime', 'first', 'direct', 1)
-      39.0±0.9μs       35.3±0.3μs     0.90  groupby.GroupByMethods.time_dtype_as_group('int16', 'head', 'direct', 1)
-        38.6±2μs       34.9±0.1μs     0.90  groupby.GroupByMethods.time_dtype_as_group('uint', 'head', 'direct', 1)
-         262±4μs          236±5μs     0.90  groupby.GroupByMethods.time_dtype_as_field('int16', 'any', 'transformation', 1)
-      72.9±0.1μs       65.9±0.1μs     0.90  groupby.GroupByMethods.time_dtype_as_group('int', 'max', 'direct', 1)
-      79.6±0.6μs         71.9±1μs     0.90  groupby.GroupByMethods.time_dtype_as_field('int', 'max', 'direct', 5)
-        72.7±1μs       65.7±0.5μs     0.90  groupby.GroupByMethods.time_dtype_as_group('int', 'first', 'direct', 1)
-      61.6±0.2μs       55.7±0.3μs     0.90  groupby.GroupByMethods.time_dtype_as_field('uint', 'mean', 'direct', 1)
-      55.8±0.5μs       50.3±0.5μs     0.90  groupby.GroupByMethods.time_dtype_as_field('int', 'var', 'direct', 1)
-      51.2±0.6μs       46.2±0.4μs     0.90  groupby.GroupByMethods.time_dtype_as_group('int', 'any', 'direct', 5)
-        77.8±2μs         70.2±2μs     0.90  groupby.GroupByMethods.time_dtype_as_field('int16', 'min', 'direct', 5)
-      72.6±0.3μs       65.5±0.2μs     0.90  groupby.GroupByMethods.time_dtype_as_group('datetime', 'first', 'direct', 1)
-      73.9±0.7μs       66.7±0.5μs     0.90  groupby.GroupByMethods.time_dtype_as_group('int', 'min', 'direct', 1)
-        76.0±2μs         68.5±1μs     0.90  groupby.GroupByMethods.time_dtype_as_field('int16', 'last', 'direct', 5)
-        67.8±1μs       61.2±0.7μs     0.90  groupby.GroupByMethods.time_dtype_as_field('int', 'mean', 'direct', 5)
-      78.7±0.6μs         71.0±2μs     0.90  groupby.GroupByMethods.time_dtype_as_field('int16', 'max', 'direct', 5)
-        40.1±1μs         36.1±1μs     0.90  groupby.GroupByMethods.time_dtype_as_field('int16', 'head', 'direct', 5)
-      39.0±0.5μs       35.1±0.6μs     0.90  groupby.GroupByMethods.time_dtype_as_field('float', 'head', 'direct', 1)
-        74.6±1μs       67.2±0.3μs     0.90  groupby.GroupByMethods.time_dtype_as_group('float', 'sum', 'direct', 1)
-      78.6±0.4μs         70.8±1μs     0.90  groupby.GroupByMethods.time_dtype_as_field('int16', 'first', 'direct', 5)
-      61.2±0.4μs         55.1±2μs     0.90  groupby.GroupByMethods.time_dtype_as_field('int16', 'var', 'direct', 5)
-        38.0±1μs         34.2±1μs     0.90  groupby.GroupByMethods.time_dtype_as_field('int16', 'head', 'direct', 1)
-      89.6±0.5μs         80.7±2μs     0.90  groupby.GroupByMethods.time_dtype_as_field('int16', 'cumcount', 'direct', 1)
-      78.7±0.4μs       70.8±0.6μs     0.90  groupby.GroupByMethods.time_dtype_as_field('int', 'min', 'direct', 5)
-      79.4±0.5μs       71.5±0.2μs     0.90  groupby.GroupByMethods.time_dtype_as_field('uint', 'min', 'direct', 5)
-      73.0±0.7μs       65.6±0.3μs     0.90  groupby.GroupByMethods.time_dtype_as_group('int16', 'sum', 'direct', 1)
-        57.8±1μs         51.9±2μs     0.90  groupby.GroupByMethods.time_dtype_as_field('int16', 'tail', 'direct', 1)
-        32.1±1μs       28.9±0.4μs     0.90  groupby.GroupByMethods.time_dtype_as_group('uint', 'count', 'direct', 1)
-        41.3±1μs       37.2±0.4μs     0.90  groupby.GroupByMethods.time_dtype_as_field('object', 'head', 'direct', 1)
-        58.6±1μs       52.7±0.5μs     0.90  groupby.GroupByMethods.time_dtype_as_field('uint', 'tail', 'direct', 1)
-         249±1μs          224±3μs     0.90  groupby.GroupByMethods.time_dtype_as_field('float', 'std', 'transformation', 1)
-      78.9±0.8μs       70.9±0.4μs     0.90  groupby.GroupByMethods.time_dtype_as_field('uint', 'max', 'direct', 5)
-      31.4±0.6μs       28.2±0.4μs     0.90  groupby.GroupByMethods.time_dtype_as_group('object', 'count', 'direct', 1)
-      71.1±0.6μs         63.9±3μs     0.90  groupby.GroupByMethods.time_dtype_as_field('int', 'max', 'direct', 1)
-      73.8±0.9μs       66.2±0.1μs     0.90  groupby.GroupByMethods.time_dtype_as_group('int', 'sum', 'direct', 1)
-      71.0±0.5μs       63.7±0.5μs     0.90  groupby.GroupByMethods.time_dtype_as_field('int16', 'max', 'direct', 1)
-        39.7±1μs       35.6±0.2μs     0.90  groupby.GroupByMethods.time_dtype_as_group('float', 'head', 'direct', 1)
-      58.9±0.6μs       52.7±0.1μs     0.90  groupby.GroupByMethods.time_dtype_as_group('float', 'tail', 'direct', 1)
-        40.3±1μs       36.1±0.6μs     0.90  groupby.GroupByMethods.time_dtype_as_group('int', 'any', 'direct', 1)
-        44.9±1μs      40.2±0.08μs     0.89  groupby.GroupByMethods.time_dtype_as_field('uint', 'any', 'direct', 5)
-        39.3±1μs       35.2±0.5μs     0.89  groupby.GroupByMethods.time_dtype_as_group('datetime', 'all', 'direct', 1)
-      61.4±0.5μs       54.9±0.4μs     0.89  groupby.GroupByMethods.time_dtype_as_field('object', 'tail', 'direct', 1)
-      67.2±0.6μs       60.1±0.8μs     0.89  groupby.GroupByMethods.time_dtype_as_group('object', 'first', 'direct', 1)
-      71.1±0.8μs       63.5±0.1μs     0.89  groupby.GroupByMethods.time_dtype_as_field('datetime', 'last', 'direct', 1)
-      71.4±0.5μs       63.7±0.5μs     0.89  groupby.GroupByMethods.time_dtype_as_field('uint', 'first', 'direct', 1)
-       249±0.9μs          223±5μs     0.89  groupby.GroupByMethods.time_dtype_as_field('int16', 'std', 'transformation', 1)
-      66.0±0.3μs       58.9±0.6μs     0.89  groupby.GroupByMethods.time_dtype_as_group('object', 'last', 'direct', 1)
-      70.7±0.5μs       63.1±0.9μs     0.89  groupby.GroupByMethods.time_dtype_as_field('float', 'sum', 'direct', 5)
-        37.5±1μs       33.5±0.8μs     0.89  groupby.GroupByMethods.time_dtype_as_field('float', 'count', 'direct', 5)
-        76.7±2μs       68.5±0.5μs     0.89  groupby.GroupByMethods.time_dtype_as_field('int', 'prod', 'direct', 5)
-      69.6±0.3μs         62.0±2μs     0.89  groupby.GroupByMethods.time_dtype_as_field('float', 'last', 'direct', 5)
-      70.6±0.8μs       62.8±0.1μs     0.89  groupby.GroupByMethods.time_dtype_as_field('uint', 'last', 'direct', 1)
-      33.1±0.9μs       29.4±0.2μs     0.89  groupby.GroupByMethods.time_dtype_as_group('float', 'count', 'direct', 1)
-        63.8±1μs         56.7±1μs     0.89  groupby.GroupByMethods.time_dtype_as_field('float', 'max', 'direct', 1)
-      69.5±0.2μs         61.8±2μs     0.89  groupby.GroupByMethods.time_dtype_as_field('float', 'first', 'direct', 5)
-      71.2±0.5μs       63.4±0.5μs     0.89  groupby.GroupByMethods.time_dtype_as_group('int16', 'prod', 'direct', 1)
-      70.6±0.1μs       62.8±0.7μs     0.89  groupby.GroupByMethods.time_dtype_as_field('float', 'min', 'direct', 5)
-      70.6±0.7μs       62.7±0.3μs     0.89  groupby.GroupByMethods.time_dtype_as_field('uint', 'prod', 'direct', 1)
-      52.5±0.5μs         46.6±1μs     0.89  groupby.GroupByMethods.time_dtype_as_field('float', 'var', 'direct', 1)
-      75.6±0.2μs      67.1±0.09μs     0.89  groupby.GroupByMethods.time_dtype_as_field('datetime', 'tail', 'direct', 5)
-      32.6±0.5μs       29.0±0.2μs     0.89  groupby.GroupByMethods.time_dtype_as_field('uint', 'count', 'direct', 1)
-      63.3±0.9μs         56.2±1μs     0.89  groupby.GroupByMethods.time_dtype_as_field('float', 'min', 'direct', 1)
-      70.7±0.6μs         62.8±2μs     0.89  groupby.GroupByMethods.time_dtype_as_field('int', 'first', 'direct', 1)
-      39.1±0.8μs       34.7±0.4μs     0.89  groupby.GroupByMethods.time_dtype_as_group('object', 'any', 'direct', 1)
-      70.1±0.9μs         62.1±2μs     0.89  groupby.GroupByMethods.time_dtype_as_field('int16', 'first', 'direct', 1)
-      39.4±0.2μs       34.9±0.4μs     0.89  groupby.GroupByMethods.time_dtype_as_group('int', 'head', 'direct', 1)
-      61.3±0.9μs         54.2±1μs     0.89  groupby.GroupByMethods.time_dtype_as_field('int', 'tail', 'direct', 5)
-      70.6±0.1μs         62.5±2μs     0.89  groupby.GroupByMethods.time_dtype_as_field('float', 'max', 'direct', 5)
-      69.9±0.8μs       61.9±0.9μs     0.89  groupby.GroupByMethods.time_dtype_as_field('int', 'last', 'direct', 1)
-      32.9±0.3μs       29.1±0.2μs     0.88  groupby.GroupByMethods.time_dtype_as_group('int16', 'count', 'direct', 1)
-      77.3±0.2μs         68.3±1μs     0.88  groupby.GroupByMethods.time_dtype_as_field('int', 'last', 'direct', 5)
-        71.4±2μs         63.1±2μs     0.88  groupby.GroupByMethods.time_dtype_as_field('int', 'min', 'direct', 1)
-        79.9±1μs       70.6±0.5μs     0.88  groupby.GroupByMethods.time_dtype_as_field('int', 'sum', 'direct', 5)
-         163±4μs         144±10μs     0.88  groupby.GroupByMethods.time_dtype_as_field('int', 'quantile', 'direct', 1)
-        61.6±1μs         54.4±2μs     0.88  groupby.GroupByMethods.time_dtype_as_field('int', 'mean', 'direct', 1)
-      59.1±0.8μs       52.2±0.3μs     0.88  groupby.GroupByMethods.time_dtype_as_group('datetime', 'tail', 'direct', 1)
-        39.5±1μs       34.9±0.5μs     0.88  groupby.GroupByMethods.time_dtype_as_field('uint', 'all', 'direct', 1)
-      45.2±0.2μs       39.9±0.2μs     0.88  groupby.GroupByMethods.time_dtype_as_field('uint', 'all', 'direct', 5)
-      69.4±0.4μs         61.2±1μs     0.88  groupby.GroupByMethods.time_dtype_as_field('float', 'prod', 'direct', 5)
-        44.9±1μs       39.6±0.5μs     0.88  groupby.GroupByMethods.time_dtype_as_field('float', 'all', 'direct', 5)
-        39.7±1μs       35.0±0.1μs     0.88  groupby.GroupByMethods.time_dtype_as_group('int', 'all', 'direct', 1)
-      38.3±0.3μs       33.7±0.4μs     0.88  groupby.GroupByMethods.time_dtype_as_field('int16', 'count', 'direct', 5)
-      61.7±0.9μs         54.3±1μs     0.88  groupby.GroupByMethods.time_dtype_as_field('float', 'tail', 'direct', 5)
-         177±3μs         156±10μs     0.88  groupby.GroupByMethods.time_dtype_as_field('int', 'quantile', 'direct', 5)
-      35.0±0.4μs       30.8±0.3μs     0.88  groupby.GroupByMethods.time_dtype_as_field('datetime', 'count', 'direct', 1)
-        39.5±1μs       34.8±0.4μs     0.88  groupby.GroupByMethods.time_dtype_as_group('uint', 'all', 'direct', 1)
-      39.5±0.3μs       34.7±0.6μs     0.88  groupby.GroupByMethods.time_dtype_as_field('int', 'head', 'direct', 1)
-      41.2±0.2μs       36.2±0.9μs     0.88  groupby.GroupByMethods.time_dtype_as_field('float', 'head', 'direct', 5)
-      40.8±0.3μs         35.8±1μs     0.88  groupby.GroupByMethods.time_dtype_as_field('int', 'head', 'direct', 5)
-        59.9±1μs       52.7±0.1μs     0.88  groupby.GroupByMethods.time_dtype_as_group('int', 'tail', 'direct', 1)
-      38.4±0.2μs       33.7±0.2μs     0.88  groupby.GroupByMethods.time_dtype_as_field('uint', 'count', 'direct', 5)
-        62.7±1μs         55.1±1μs     0.88  groupby.GroupByMethods.time_dtype_as_field('float', 'prod', 'direct', 1)
-      56.5±0.4μs       49.5±0.5μs     0.88  groupby.GroupByMethods.time_dtype_as_group('object', 'tail', 'direct', 1)
-      32.9±0.6μs       28.8±0.7μs     0.88  groupby.GroupByMethods.time_dtype_as_field('float', 'count', 'direct', 1)
-      62.0±0.6μs         54.3±1μs     0.88  groupby.GroupByMethods.time_dtype_as_field('float', 'last', 'direct', 1)
-      45.2±0.4μs       39.5±0.3μs     0.87  groupby.GroupByMethods.time_dtype_as_field('int', 'all', 'direct', 5)
-        59.1±2μs         51.6±2μs     0.87  groupby.GroupByMethods.time_dtype_as_field('int', 'tail', 'direct', 1)
-        71.3±1μs         62.3±1μs     0.87  groupby.GroupByMethods.time_dtype_as_field('int', 'prod', 'direct', 1)
-      41.2±0.4μs       36.0±0.1μs     0.87  groupby.GroupByMethods.time_dtype_as_group('uint', 'any', 'direct', 1)
-      33.3±0.3μs       29.1±0.5μs     0.87  groupby.GroupByMethods.time_dtype_as_group('int', 'count', 'direct', 1)
-        50.1±1μs       43.7±0.2μs     0.87  groupby.GroupByMethods.time_dtype_as_field('uint', 'std', 'direct', 5)
-      59.1±0.5μs         51.6±1μs     0.87  groupby.GroupByMethods.time_dtype_as_field('float', 'mean', 'direct', 1)
-      40.8±0.5μs       35.6±0.6μs     0.87  groupby.GroupByMethods.time_dtype_as_group('datetime', 'any', 'direct', 1)
-      38.0±0.8μs         33.1±1μs     0.87  groupby.GroupByMethods.time_dtype_as_field('int', 'count', 'direct', 5)
-      60.5±0.5μs       52.6±0.4μs     0.87  groupby.GroupByMethods.time_dtype_as_group('int16', 'tail', 'direct', 1)
-      40.1±0.7μs         34.9±1μs     0.87  groupby.GroupByMethods.time_dtype_as_field('float', 'any', 'direct', 1)
-      46.0±0.1μs       40.0±0.8μs     0.87  groupby.GroupByMethods.time_dtype_as_field('int', 'any', 'direct', 5)
-      44.5±0.6μs       38.7±0.5μs     0.87  groupby.GroupByMethods.time_dtype_as_field('int16', 'any', 'direct', 5)
-      40.3±0.6μs       35.0±0.5μs     0.87  groupby.GroupByMethods.time_dtype_as_group('float', 'all', 'direct', 1)
-      59.0±0.4μs         51.2±1μs     0.87  groupby.GroupByMethods.time_dtype_as_field('float', 'tail', 'direct', 1)
-      40.3±0.7μs       34.9±0.4μs     0.87  groupby.GroupByMethods.time_dtype_as_group('int16', 'all', 'direct', 1)
-      73.2±0.3μs         63.5±1μs     0.87  groupby.GroupByMethods.time_dtype_as_field('int', 'sum', 'direct', 1)
-      40.6±0.7μs       35.2±0.5μs     0.87  groupby.GroupByMethods.time_dtype_as_group('int16', 'any', 'direct', 1)
-      33.1±0.4μs       28.7±0.9μs     0.87  groupby.GroupByMethods.time_dtype_as_field('int', 'count', 'direct', 1)
-      73.5±0.4μs      63.5±0.05μs     0.86  groupby.GroupByMethods.time_dtype_as_field('uint', 'sum', 'direct', 1)
-      64.7±0.8μs         55.8±2μs     0.86  groupby.GroupByMethods.time_dtype_as_field('float', 'sum', 'direct', 1)
-        39.1±1μs         33.7±1μs     0.86  groupby.GroupByMethods.time_dtype_as_field('int16', 'any', 'direct', 1)
-      45.9±0.6μs       39.5±0.8μs     0.86  groupby.GroupByMethods.time_dtype_as_field('float', 'any', 'direct', 5)
-      41.1±0.5μs       35.4±0.3μs     0.86  groupby.GroupByMethods.time_dtype_as_group('float', 'any', 'direct', 1)
-        46.7±1μs       40.2±0.2μs     0.86  groupby.GroupByMethods.time_dtype_as_group('uint', 'std', 'direct', 1)
-      39.5±0.8μs       33.9±0.2μs     0.86  groupby.GroupByMethods.time_dtype_as_group('object', 'all', 'direct', 1)
-      41.0±0.5μs       35.2±0.4μs     0.86  groupby.GroupByMethods.time_dtype_as_field('uint', 'any', 'direct', 1)
-      47.3±0.7μs       40.5±0.4μs     0.86  groupby.GroupByMethods.time_dtype_as_group('int', 'std', 'direct', 1)
-      40.1±0.1μs         34.3±1μs     0.86  groupby.GroupByMethods.time_dtype_as_field('int', 'any', 'direct', 1)
-      32.7±0.6μs       28.0±0.8μs     0.86  groupby.GroupByMethods.time_dtype_as_field('int16', 'count', 'direct', 1)
-      49.3±0.3μs       42.1±0.3μs     0.85  groupby.GroupByMethods.time_dtype_as_group('float', 'std', 'direct', 1)
-      40.2±0.9μs         34.3±1μs     0.85  groupby.GroupByMethods.time_dtype_as_field('float', 'all', 'direct', 1)
-      39.4±0.1μs       33.6±0.4μs     0.85  groupby.GroupByMethods.time_dtype_as_field('int16', 'all', 'direct', 1)
-      40.7±0.2μs       34.6±0.8μs     0.85  groupby.GroupByMethods.time_dtype_as_field('int', 'all', 'direct', 1)
-      50.7±0.7μs       42.6±0.9μs     0.84  groupby.GroupByMethods.time_dtype_as_field('int', 'std', 'direct', 5)
-      47.4±0.7μs       39.8±0.2μs     0.84  groupby.GroupByMethods.time_dtype_as_group('int16', 'std', 'direct', 1)
-      44.8±0.4μs         37.5±1μs     0.84  groupby.GroupByMethods.time_dtype_as_field('int16', 'all', 'direct', 5)
-      43.4±0.3μs       36.4±0.4μs     0.84  groupby.GroupByMethods.time_dtype_as_field('float', 'std', 'direct', 1)
-      46.0±0.5μs       38.5±0.1μs     0.84  groupby.GroupByMethods.time_dtype_as_field('uint', 'std', 'direct', 1)
-      51.1±0.3μs       42.7±0.2μs     0.83  groupby.GroupByMethods.time_dtype_as_field('int16', 'std', 'direct', 5)
-        45.0±1μs       37.4±0.6μs     0.83  groupby.GroupByMethods.time_dtype_as_field('int16', 'std', 'direct', 1)
-      46.0±0.6μs       38.2±0.4μs     0.83  groupby.GroupByMethods.time_dtype_as_field('int', 'std', 'direct', 1)
-      49.4±0.3μs         40.9±1μs     0.83  groupby.GroupByMethods.time_dtype_as_field('float', 'std', 'direct', 5)

SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.
PERFORMANCE INCREASED.

@rhshadrach rhshadrach added Groupby Performance Memory or execution speed performance labels Nov 12, 2022
@rhshadrach rhshadrach added this to the 1.5.2 milestone Nov 12, 2022
@rhshadrach rhshadrach changed the title CLN: Remove groupby's __getattribute__ for nth PERF: Remove groupby's __getattribute__ for nth Nov 12, 2022
@rhshadrach rhshadrach changed the title PERF: Remove groupby's __getattribute__ for nth REGR: Remove groupby's __getattribute__ for nth Nov 12, 2022
@rhshadrach rhshadrach added the Regression Functionality that used to work in a prior pandas version label Nov 12, 2022
Copy link
Member

@MarcoGorelli MarcoGorelli left a comment

Choose a reason for hiding this comment

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

I'm surprised this is enough to affect performance, but looks good to me

@rhshadrach rhshadrach mentioned this pull request Nov 13, 2022
Copy link
Contributor

@jreback jreback left a comment

Choose a reason for hiding this comment

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

lgtm

@datapythonista datapythonista merged commit b2b61af into pandas-dev:main Nov 15, 2022
meeseeksmachine pushed a commit to meeseeksmachine/pandas that referenced this pull request Nov 15, 2022
phofl pushed a commit that referenced this pull request Nov 16, 2022
…bute__ for nth) (#49705)

* Backport PR #49676: REGR: Remove groupby's __getattribute__ for nth

Co-authored-by: Richard Shadrach <45562402+rhshadrach@users.noreply.github.com>
MarcoGorelli pushed a commit to MarcoGorelli/pandas that referenced this pull request Nov 18, 2022
@rhshadrach rhshadrach deleted the remove_nth_getattribute branch November 22, 2022 03:23
mliu08 pushed a commit to mliu08/pandas that referenced this pull request Nov 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Groupby Performance Memory or execution speed performance Regression Functionality that used to work in a prior pandas version
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants