Pandas: рдмрдЧ: рдирдХрд▓реА рдорд╛рди рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд╕рд╛рде рдлреНрд░реЗрдо рдХреЗ рд▓рд┐рдП _nsorted

рдХреЛ рдирд┐рд░реНрдорд┐рдд 9 рдЬреВрди 2016  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pandas-dev/pandas

рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдлрд╝реНрд░реЗрдо рдореЗрдВ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рд╣реИ, рддреЛ рдЖрдкрдХреЛ n рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗрдЧрд╛ рдФрд░ рдареАрдХ рд╕реЗ рд╕реЙрд░реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП DataFrame рдХреЗ рд▓рд┐рдП nsmallest рдФрд░ nlargest рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рд╕рд╣реА рдлреНрд░реЗрдо рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

def _nsorted(self, columns, n, method, keep):
    if not com.is_list_like(columns):
        columns = [columns]
    columns = list(columns)
    ser = getattr(self[columns[0]], method)(n, keep=keep)
    ascending = dict(nlargest=False, nsmallest=True)[method]
    return self.loc[ser.index].sort_values(columns, ascending=ascending,
                                           kind='mergesort')

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@ рд╢рдВрдХрд░рдХрд░ рджреЗрдЦреЗрдВ: https://github.com/pandas-dev/pandas/issues/15297

рд╕рднреА 5 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ:

In [71]: df = pd.DataFrame({'a':[1,2,3,4], 'b':[4,3,2,1]}, index=[0,0,1,1])

In [72]: df.nlargest(1, 'a')
Out[72]:
   a  b
1  4  1
1  3  2

In [73]: df.nlargest(2, 'a')
Out[73]:
   a  b
1  4  1
1  4  1
1  3  2
1  3  2

( @ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП
рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдХрд░рдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ?

рд╣рд╛рдВ рдореИрдВ рдЬрд▓реНрдж рд╣реА рдЗрд╕реЗ рдареАрдХ рдХрд░ рджреВрдВрдЧрд╛
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ

рд▓реЗ 9 рдЬреВрдиреА 2016 рдЕ 23:30, рдЬреЛрд░рд┐рд╕ рд╡рд╛рди рдбреЗрди рдмреЛрд╢реЗ рд╕реВрдЪрдирд╛рдПрдВ

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ:

[71] рдореЗрдВ: df = pd.DataFrame ({'a': [1,2,3,4], 'b': [4,3,2,1]}, рдЗрдВрдбреЗрдХреНрд╕ = [0,0,1, 1])

[72] рдореЗрдВ: df.nlargest (1, 'a')
рдмрд╛рд╣рд░ [72]:
рдЕрдм
рез рек рез
рез рей реи

[73] рдореЗрдВ: df.nlargest (2, 'a')
рдмрд╛рд╣рд░ [73]:
рдЕрдм
рез рек рез
рез рек рез
рез рей реи
рез рей реи
( @ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП
рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдХрд░рдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ?

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ, рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВред

рдореЗрд░рд╛ рдлрд┐рдХреНрд╕ рдмрд╣реБрдд рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдорд▓реНрдЯреАрдЗрдВрдбреЗрдХреНрд╕ рдФрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯреЗрдб рд╡реИрд▓реНрдпреВ рдЗрдВрдбреЗрдХреНрд╕ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ

Sum .19.2 рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЧрд┐рдирддреА рдХреЗ рд╕рд╛рде, рдпрд╣ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИред рдбреАрдПрдл "рдПрди" рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрдпрд╛ рд╡рд╣ рдмрдЧ рд╣реИ рдпрд╛ рдореИрдВ рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ?

df.groupby(['a']).agg({'b':'count'}).nlargest(2, 'b')

    b
a   
1   1
2   1
3   1
4   1
1   1
2   1
3   1
4   1

@ рд╢рдВрдХрд░рдХрд░ рджреЗрдЦреЗрдВ: https://github.com/pandas-dev/pandas/issues/15297

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Abrosimov-a-a picture Abrosimov-a-a  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

scls19fr picture scls19fr  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Ashutosh-Srivastav picture Ashutosh-Srivastav  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

nathanielatom picture nathanielatom  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

andreas-thomik picture andreas-thomik  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ