Skip to main content
 首页 » 编程设计

python之从 pandas Dataframe 获取给定日期的数据

2025年05月04日21insus

我有一个数据框 df 如下:

date1               item_id 
2000-01-01 00:00:00    0 
2000-01-01 10:01:00    1 
2000-01-01 00:02:00    2 
2000-01-01 00:03:00    3 
2000-01-01 00:04:00    4 
2000-01-01 00:05:00    5 
2000-01-01 00:06:00    6 
2000-01-01 12:07:00    7 
2000-01-02 00:08:00    8 
2000-01-02 00:00:00    0 
2000-01-02 00:01:00    1 
2000-01-02 03:02:00    2 
2000-01-02 00:03:00    3 
2000-01-02 00:04:00    4 
2000-01-02 00:05:00    5 
2000-01-02 04:06:00    6 
2000-01-02 00:07:00    7 
2000-01-02 00:08:00    8 

我需要一天的数据,即 2000 年 1 月 1 日。下面的查询给出了正确的结果。但是有没有一种方法可以通过传递“2000-01-01”来完成?

result= df[(df['date1'] > '2000-01-01 00:00') & (df['date1'] < '2000-01-01 23:59')] 

请您参考如下方法:

使用partial string indexing , 但首先需要 DatetimeIndex:

df = df.set_index('date1')['2000-01-01'] 
print (df) 
                     item_id 
date1                        
2000-01-01 00:00:00        0 
2000-01-01 10:01:00        1 
2000-01-01 00:02:00        2 
2000-01-01 00:03:00        3 
2000-01-01 00:04:00        4 
2000-01-01 00:05:00        5 
2000-01-01 00:06:00        6 
2000-01-01 12:07:00        7 

另一种解决方案是通过 strftime 将日期时间转换为字符串并按 boolean indexing 过滤:

df = df[df['date1'].dt.strftime('%Y-%m-%d') == '2000-01-01'] 
print (df) 
                date1  item_id 
0 2000-01-01 00:00:00        0 
1 2000-01-01 10:01:00        1 
2 2000-01-01 00:02:00        2 
3 2000-01-01 00:03:00        3 
4 2000-01-01 00:04:00        4 
5 2000-01-01 00:05:00        5 
6 2000-01-01 00:06:00        6 
7 2000-01-01 12:07:00        7