R pandas groupby индекс первого ряда в каждой группе - PullRequest
0 голосов
/ 05 июня 2018

Как мне получить индекс первой строки в каждой группе GROUP BY?

(я знаю .groupby.first () вернуть первую строку в каждой группе, но я не знаю, как получитьих индекс)

Спасибо большое!

Ответы [ 3 ]

0 голосов
/ 05 июня 2018

Для first вы можете использовать head вместо:

np.random.seed(123)
df = pd.DataFrame({'A':np.random.choice(list('ABC'), 50),'values':np.random.randint(0,100,50)})
df.groupby('A').head(1)

Выход:

   A  values
0  C      75
1  B      34
4  A      22
0 голосов
/ 05 июня 2018

Вы можете использовать drop_duplicates

df.drop_duplicates('A',keep='first')
0 голосов
/ 05 июня 2018

IIUC, это должно работать для вас, используя first_valid_index:

df.groupby('grouping_variable').apply(lambda x: x.first_valid_index())

Пример:

>>> df
       data group
0 -0.430336     b
1  2.323743     b
2 -0.065441     b
3 -0.894935     b
4  0.529603     b
5 -1.386138     b
6 -1.198493     b
7 -1.025802     a
8  1.151468     b
9 -0.831743     b

>>> df.groupby('group').apply(lambda x: x.first_valid_index())
group
a    7
b    0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...