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"]