根据日期从数据框中提取值

时间:2020-03-10 19:42:04

标签: python pandas dataframe

假设我在下面有以下数据框:

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

我将如何确定和提取每个用户最早记录日期的值。即Tom的2018-02-12和nick的2019-06-01?

此外,如果我添加了一个参数,例如最早的记录日期大于2019-01-01,该怎么办?

2 个答案:

答案 0 :(得分:1)

这里是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

您可以将大号更改为等号或小号以获得不同的结果。 干杯

答案 1 :(得分:0)

如果将日期字符串转换为datetime对象,一切将变得更加容易。完成后,您可以对它们进行排序,然后记录每个用户ID的第一条记录。此外,您可以通过在条件中传递日期字符串来过滤数据框,并以相同的方式进行操作。

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

输出

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

df[df['recorddate']>'2019-01-01'].groupby('userid').first()
相关问题