Сохранить первую и последнюю запись дубликата в столбце данных - PullRequest
2 голосов
/ 02 октября 2019

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

Я уже пытался добиться этого, используя df.drop_duplicates с параметрами 'first' и 'last' дляполучите два кадра данных, а затем снова объедините их в один df, чтобы у меня была первая и последняя запись, но это не сработало.

df_first = df
df_last = df

df_first['Path'].drop_duplicates(keep='first', inplace=True)
df_last['Path'].drop_duplicates(keep='last', inplace=True)

Спасибо за вашу помощь заранее!

1 Ответ

2 голосов
/ 02 октября 2019

Используйте GroupBy.nth для избежания дублирования, если группа с длиной 1:

df = pd.DataFrame({
         'a':[5,3,6,9,2,4],
         'Path':list('aaabbc')
})
print(df)
   a Path
0  5    a
1  3    a
2  6    a
3  9    b
4  2    b
5  4    c

df = df.groupby('Path').nth([0, -1])
print (df)
      a
Path   
a     5
a     6
b     9
b     2
c     4
...