Извлечь значение из кадра данных на основе даты - PullRequest
0 голосов
/ 10 марта 2020

Предположим, у меня есть следующий кадр данных:

   userid   recorddate
0    tom    2018-06-12
1   nick    2019-06-01
2    tom    2018-02-12
3   nick    2019-06-02

Как бы я go об определении и извлечении значения для самой ранней даты записи для каждого пользователя. то есть 2018-02-12 для Тома и 2019-06-01 для Ника?

Кроме того, что если я добавлю такой параметр, как самая ранняя дата записи, которая больше 2019-01-01?

Ответы [ 2 ]

1 голос
/ 10 марта 2020

Здесь решение с loc

df['recorddate'] = pd.to_datetime(df['recorddate'])
date = pd.to_datetime("2019-01-01")
df.loc[df['recorddate']>date]

Вывод будет:

    userid  recorddate
1   nick    2019-06-01
3   nick    2019-06-02

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

0 голосов
/ 10 марта 2020

Все будет проще, если вы преобразуете строки даты в объекты datetime. Как только это будет сделано, вы можете отсортировать их, а затем взять первую запись по идентификатору пользователя. Кроме того, вы можете отфильтровать фрейм данных, передав строку даты в вашем условном выражении, и действовать аналогичным образом.

df['recorddate'] = pd.to_datetime(df['recorddate'])
df.sort_values(by='recorddate', inplace=True)
df.groupby('userid').first()

output

       recorddate
userid
nick   2019-06-01
tom    2018-02-12

или

df[df['recorddate']>'2019-01-01'].groupby('userid').first()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...