Python 3.x 如何用datetime列中的单个日期来子集dataframe列?

Python 3.x 如何用datetime列中的单个日期来子集dataframe列?,python-3.x,pandas,datetime,timestamp,subset,Python 3.x,Pandas,Datetime,Timestamp,Subset,所以我认为这应该是一个更简单的任务,但我找不到它。我有一个熊猫数据框,如下所示 Company Id DateTime col1 col2 col3 col4 col5 col6 0 25502921 2018-08-16 10:23:36 0 175.000 0.0 0.0 0.0 0 1 25502921 2018-08-16 10:33:55 0

所以我认为这应该是一个更简单的任务,但我找不到它。我有一个熊猫数据框,如下所示

Company Id      DateTime               col1  col2       col3    col4   col5     col6
0   25502921    2018-08-16 10:23:36     0   175.000     0.0     0.0     0.0     0
1   25502921    2018-08-16 10:33:55     0   155.557     0.0     0.0     0.0     0
2   25502921    2018-08-16 10:43:55     0   153.615     0.0     0.0     0.0     0
type(df['DateTime'][0])
输出
pandas.\u libs.tslibs.Timestamp.Timestamp

如何根据日期对数据帧进行子集划分

df_tmp=df[df['DateTime'].dt.date='16-08-2018']
似乎不起作用,也不起作用
df_tmp=df[df['DateTime']='16-08-2018']

我还可以尝试哪些直观的方法?

使用
.dt.normalize()
将时间转换为
00:00:00
,但返回日期时间对象

df['DateTime'].dt.normalize().apply(type)
pandas._libs.tslibs.timestamps.Timestamp



我相信,当您将DateTime设置为索引时,您将获得更好的性能和更容易的处理:

df = pd.read_clipboard(sep = '\s{2,}',parse_dates=['DateTime'])
df.set_index("DateTime").loc["2018-08-16"]
df[df['DateTime'].dt.normalize() == '2018-08-16']

   Company_Id            DateTime  col1     col2  col3  col4  col5  col6
0    25502921 2018-08-16 10:23:36     0  175.000   0.0   0.0   0.0     0
1    25502921 2018-08-16 10:33:55     0  155.557   0.0   0.0   0.0     0
2    25502921 2018-08-16 10:43:55     0  153.615   0.0   0.0   0.0     0
df = pd.read_clipboard(sep = '\s{2,}',parse_dates=['DateTime'])
df.set_index("DateTime").loc["2018-08-16"]