我有一个像这样的 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/