Выбрать одни и те же строки в pandas несколько раз - PullRequest
1 голос
/ 19 июня 2020

У меня есть список значений столбца, который я хотел бы выбрать из Pandas фрейма данных. В этом списке есть повторяющиеся значения, и я хотел бы выбрать соответствующие строки в том же порядке, что и в списке, и дублировать. Например, скажем, у меня есть этот фрейм данных:

  id    value    date
  1     0.5      01-01-20
  2     0.3      01-02-20
  3     0.4      01-03-20
  4     0.8      01-04-20

И этот список:

dates=(01-01-20, 01-01-20, 01-02-20)

Я бы хотел, чтобы отфильтрованный фрейм данных был таким:

  id    value    date
  1     0.5      01-01-20
  1     0.5      01-01-20
  2     0.3      01-02-20

Пробовал использовать функцию .isin() но дубликаты не учитываются. Я думаю, это можно сделать в for l oop, но есть ли «элегантный» способ сделать это?

1 Ответ

1 голос
/ 19 июня 2020

Используйте DataFrame.reindex, что должно быть предпочтительнее, например DataFrame.loc, потому что также работает, если нет совпадений (но необходимы уникальные значения столбца):

dates=('01-01-20', '01-01-20', '01-02-20')
df = df.set_index('date').reindex(dates).reset_index().reindex(df.columns, axis=1)
print (df)
   id  value      date
0   1    0.5  01-01-20
1   1    0.5  01-01-20
2   2    0.3  01-02-20
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...