Python pandas根据日期范围按升序过滤数据

Posted

技术标签:

【中文标题】Python pandas根据日期范围按升序过滤数据【英文标题】:Python pandas to filter the data based on date range in ascending order 【发布时间】:2021-10-16 16:18:28 【问题描述】:

我正在加载 csv 文件,它包含三列:包含日期和时间的列、包含值的列和另一个“数据”。示例行:

 value data                 Date-Time
0      2    a     2019-3-18 23:11:00
1      3    b     2019-10-24 21:00:12
2      1    c     2019-1-10 23:00:00
3      2    d     2019-4-18 23:11:00
4      1    e     2019-1-1 23:00:00

如果我们得到重复的值,我希望按值分组,需要根据最近的日期和时间记录来获取记录,它应该如下所示。

  value data                date
0      1    c 2019-1-10 23:00:00
1      2    d 2019-04-18 23:11:00
2      3    b 2019-10-24 21:00:12


df["date"] = pd.to_datetime(df["date"])

df = df.sort_values("date").groupby(['value'], as_index=False).first()

print(df)

【问题讨论】:

【参考方案1】:

使用sort_valuesdrop_duplicates

# Convert 'Date-Time' column to datetime64
# df['Date-Time'] = pd.to_datetime(df['Date-Time'])

>>> df.sort_values('Date-Time') \
      .drop_duplicates('value', keep='last') \
      .sort_values('value')

   value data           Date-Time
2      1    c 2019-01-10 23:00:00
3      2    d 2019-04-18 23:11:00
1      3    b 2019-10-24 21:00:12

【讨论】:

以上是关于Python pandas根据日期范围按升序过滤数据的主要内容,如果未能解决你的问题,请参考以下文章

Python数据分析pandas日期范围date_range

根据日期范围过滤列

基于日期过滤器的Python Pandas组

pandas根据时间(日期)跨度处理数据

创建一个按日期月份过滤的下拉列表(pandas + plotly)

按创建日期过滤多个 csv 文件并连接成一个 pandas DataFrame