Как получить строки во фрейме данных Pandas с максимальными значениями в столбце и сохранить исходный индекс?

У меня есть фрейм данных панд. В первом столбце он может иметь одно и то же значение несколько раз (другими словами, значения в первом столбце не являются уникальными).

Всякий раз, когда у меня есть несколько строк, которые содержат одинаковое значение в первом столбце, я хотел бы оставить только те, которые имеют максимальное значение в третьем столбце. Я почти нашел решение:

import pandas

ls = []
ls.append({'c1':'a', 'c2':'a', 'c3':1})
ls.append({'c1':'a', 'c2':'c', 'c3':3})
ls.append({'c1':'a', 'c2':'b', 'c3':2})
ls.append({'c1':'b', 'c2':'b', 'c3':10})
ls.append({'c1':'b', 'c2':'c', 'c3':12})
ls.append({'c1':'b', 'c2':'a', 'c3':7})

df = pandas.DataFrame(ls, columns=['c1','c2','c3'])
print df
print '--------------------'
print df.groupby('c1').apply(lambda df:df.irow(df['c3'].argmax()))

В результате я получаю:

  c1 c2  c3
0  a  a   1
1  a  c   3
2  a  b   2
3  b  b  10
4  b  c  12
5  b  a   7
--------------------
   c1 c2  c3
c1          
a   a  c   3
b   b  c  12

Моя проблема в том, что я не хочу иметьc1 в качестве индекса. Я хочу иметь следующее:

  c1 c2  c3
1  a  c   3
4  b  c  12

Ответы на вопрос(2)

Ваш ответ на вопрос