Используйте dt.strftime
, затем получите все строки, которые равны вашей дате, с boolean indexing
m = df['Timestamp'].dt.strftime('%Y-%m-%d') == '2018-01-02'
df[m]
Или в одну строку:
df[df['Timestamp'].dt.strftime('%Y-%m-%d').eq('2018-01-02')]
Выход
Id Timestamp Data Group_Id
2 6001 2018-01-02 00:00:13.507 127.0 52
3 6002 2018-01-02 00:00:13.743 126.5 52
Мы также можем использовать set_index
с .loc
:
df.set_index('Timestamp').loc['2018-01-02'].reset_index()
Выход
Timestamp Id Data Group_Id
0 2018-01-02 00:00:13.507 6001 127.0 52
1 2018-01-02 00:00:13.743 6002 126.5 52
note : если ваш столбец Timestamp
еще не datetime
, используйте этот код перед выполнением вышеуказанного:
df['Timestamp'] = pd.to_datetime(df['Timestamp'])
Вопрос 1:
m = df['Timestamp'].dt.strftime('%Y-%m-%d') == '2018-01-02'
df[m].shape[0]
Или
len(df[m])
Вопрос 2:
m1 = df['Timestamp'].dt.strftime('%Y-%m-%d') == '2018-01-02'
m2 = df['Group_Id'].eq(52)
df[m1&m2]