Вы можете сделать это, используя
df2 = df.loc[df['Timestamp'].between(date1, date2)].sort_values(by=['Timestamp', 'group_Id'])
.between
как указано, вы должны использовать объекты datetime для правильной обработки с вашим столбцом datetime. sort_values
может создавать несколько столбцов одновременно.
Вы хотите выполнить сортировку после выбора между ними, чтобы не сортировать каждый элемент, а только выбранные, если только вы не планируете продолжать использовать df
и не нуждаетесь в необходимостиэто также сортировалось, в этом случае просто поместите это прежде на основной df
.
import pandas as pd
from datetime import datetime
df = pd.DataFrame({
'Id': [5999, 6000, 6001, 6002, 6003, 6004, 6005, 6006, 6007, 6008],
'Timestamp': ['8/1/19 00:00', '4/1/19 00:00', '1/1/19 00:00', '2/1/19 00:00', '3/1/19 00:00', '5/1/19 00:00', '6/1/19 00:00', '7/1/19 00:00', '9/1/19 00:00', '10/1/19 00:00'],
'Data': [25.5, 25, 27, 26.5, 25.5, 25, 37, 36.5, 30.5, 30],
'group_Id': [101, 101, 52, 52, 50, 50, 14, 14, 85, 85]
})
df['Timestamp'] = pd.to_datetime(df['Timestamp'], format='%m/%d/%y %H:%M')
date1 = datetime.strptime('2019-01-31', '%Y-%m-%d')
date2 = datetime.strptime('2019-07-31', '%Y-%m-%d')
df2 = df.loc[df['Timestamp'].between(date1, date2)].sort_values(by=['Timestamp', 'group_Id'])