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_values
和drop_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