Как перебрать DataFrame для выбора строк - PullRequest
1 голос
/ 25 февраля 2020

Я новичок в Python, и я пытаюсь понять, как выбрать n строк из каждого индекса в Dataframe и построить новый Dataframe только с выбранными строками.

Мой df выглядит так :

      Col1 Col2 Col3 etc
   A
   A
   A
   A
   B
   B
   B
   B

Я бы в основном взял первые две строки для каждого индекса:

     Col1 Col2 Col3 etc.
   A
   A
   B
   B

Я попытался сделать это с помощью для l oop и ilo c как здесь, но l oop останавливается для индекса A:

   for i in df:
       sel=df.iloc[:3]

Я знаю, что это базовый c вопрос, но чем больше я читаю, тем больше я путаюсь с for, apply, range, et c

Пожалуйста, помогите! Спасибо

Ответы [ 2 ]

1 голос
/ 25 февраля 2020

Если вы хотите получить первые две строки каждой группы, вы можете сделать следующее:

df.groupby('Col1').head(2)
0 голосов
/ 25 февраля 2020

Небольшое отклонение от ответа @ Chris, если A, B, et c. находятся в индексе, а не в первом столбце. Сначала вы должны сбросить индекс, использовать group_by, head, сбросить индекс и удалить его имя:

df.reset_index().groupby('index').head(2).set_index('index').rename_axis(None)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...