Closed
Description
In [19]: df = DataFrame({'a':['A1', 'A1', 'A1'], 'b':['B1','B1','B2'], 'c':1})
In [20]: df.set_index('a').groupby('b').rank(method='first')
Out[20]:
c
a
A1 1
A1 2
A1 1
In [21]: df.set_index('a').groupby('c').rank(method='first')
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-21-6b8d4cae9d91> in <module>()
----> 1 df.set_index('a').groupby('c').rank(method='first')
/home/nicolas/Git/pandas/pandas/core/groupby.pyc in rank(self, axis, numeric_only, method, na_option, ascending, pct)
/home/nicolas/Git/pandas/pandas/core/groupby.pyc in wrapper(*args, **kwargs)
618 # mark this column as an error
619 try:
--> 620 return self._aggregate_item_by_item(name, *args, **kwargs)
621 except (AttributeError):
622 raise ValueError
/home/nicolas/Git/pandas/pandas/core/groupby.pyc in _aggregate_item_by_item(self, func, *args, **kwargs)
3076 # GH6337
3077 if not len(result_columns) and errors is not None:
-> 3078 raise errors
3079
3080 return DataFrame(result, columns=result_columns)
TypeError: rank() got an unexpected keyword argument 'numeric_only'
I'm trying to obtain what I would get with a row_number()
in SQL...
Notice that if I replace the value in the 'c'
column with the string '1'
, then even df.set_index('a').groupby('b').rank(method='first')
fails.
Am I doing something wrong?