Как сохранить последнее значение в Pandas, не удаляя строки - PullRequest
0 голосов
/ 23 октября 2018

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

table

date         |  action_id   |  u_id       | goal   
2016-01-08   |  CUID22      |   586758    |  'Goal#1'
2017-03-04   |  CUID45      |   586758    |  'Goal#1'
2018-09-01   |  CUID30      |   586758    |  'Goal#1'

Как я могу удалить / заменить первые два значения u_id или target, сохраняя при этом строки, находящиеся ниже набора таблиц.

table

date         |  action_id   |  u_id       | goal   
2016-01-08   |  CUID22      |   NaN       |  NaN
2017-03-04   |  CUID45      |   NaN       |  NaN
2018-09-01   |  CUID30      |   586758    |  'Goal#1'

1 Ответ

0 голосов
/ 23 октября 2018

Я считаю, что вам нужно duplicated:

cols = ['u_id','goal']
df.loc[df.duplicated(cols, keep='last'), cols] = np.nan

Или:

cols = ['u_id','goal']
df[cols] = df[cols].mask(df.duplicated(cols, keep='last'))

print (df)
   date  action_id  u_id  goal
0  2016          0   NaN   NaN
1  2017          1   NaN   NaN
2  2018          2   1.0   1.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...