python - 根据特定日期值对 pandas 数据框进行子集化

标签 python date pandas

我有一个像这样的 pandas 数据框

order_id buyer_id item_id                time        
537       79      93 2016-01-04 10:20:00    
540      191      93 2016-01-04 10:30:00    
556      251      82 2016-01-04 13:39:00  
589      191     104 2016-01-05 10:59:00   
596      251      99 2016-01-05 13:48:00    
609       79     106 2016-01-06 10:39:00    
611      261      97 2016-01-06 10:50:00   
680       64     135 2016-01-11 11:58:00  
681      261     133 2016-01-11 12:03:00    
682      309     135 2016-01-11 12:08:00 

我想在 date == '2016-01-04 上对此数据帧进行子集化.df的数据类型数据框是

df.dtypes Out[1264]: order_id object buyer_id object item_id object time datetime64[ns]

这就是我在 python 中所做的

df[df['time'] == '2016-01-04']

但它返回给我一个空数据框。但是,当我这样做时 df[df['time'] < '2016-01-05']有用。请帮忙

最佳答案

这里的问题是,比较是为了精确匹配而执行的,因为没有一次是 '00:00:00' 那么就不会发生匹配,您必须只进行比较为了使其工作的日期组件:

In [20]:
df[df['time'].dt.date == pd.to_datetime('2016-01-04').date()]

Out[20]:
   order_id  buyer_id  item_id                time
0       537        79       93 2016-01-04 10:20:00
1       540       191       93 2016-01-04 10:30:00
2       556       251       82 2016-01-04 13:39:00

关于python - 根据特定日期值对 pandas 数据框进行子集化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35130990/

相关文章:

python - 将数据导出到 Excel

python - 如果解析的 url 包含关键字则 DropItem(管道)

python - 如果满足某些 GroupBy 条件,则从原始 Pandas 数据框中删除行

python - Pandas :使用 Groupby 滚动时间加权移动平均线

python - 关闭 Tkinter 后运行 wxPython

java - java中如何比较两个日期?

date - Solr日期字段tdate与日期?

javascript - 从 toUTCString() 开始的日期

python - 转换长数据帧并提取字符串

python - Pylint 加载插件在 VS 代码中失败