У меня есть фрейм данных следующим образом:
slot_id class day base_date
0 1 A Monday 2019-01-21
1 2 B Tuesday 2019-01-22
2 3 C Wednesday 2019-01-23
3 4 C Wednesday 2019-01-23
4 5 C Thursday 2019-01-24
Со следующей информацией:
example.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 8 entries, 0 to 7
Data columns (total 4 columns):
slot_id 8 non-null int64
class 8 non-null object
day 8 non-null object
base_date 8 non-null object
dtypes: int64(1), object(3)
memory usage: 200.0+ bytes
Я хотел бы получить строку с class == "C"
с минимальным base_date
.Я безуспешно пробовал множество комбинаций min
, например:
example[(example['class']=="C") & min(example['base_date'])]
Что не так с кодом выше?Как я могу получить полный ряд, удовлетворяющий условию выше?Полный example
кадр данных:
{'slot_id': {0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8}, 'class': {0: 'A', 1: 'B', 2: 'C', 3: 'C', 4: 'C', 5: 'C', 6: 'D', 7: 'E'}, 'day': {0: 'Monday', 1: 'Tuesday', 2: 'Wednesday', 3: 'Wednesday', 4: 'Thursday', 5: 'Tuesday', 6: 'Thursday', 7: 'Saturday'}, 'base_date': {0: datetime.date(2019, 1, 21), 1: datetime.date(2019, 1, 22), 2: datetime.date(2019, 1, 23), 3: datetime.date(2019, 1, 23), 4: datetime.date(2019, 1, 24), 5: datetime.date(2019, 1, 22), 6: datetime.date(2019, 1, 24), 7: datetime.date(2019, 1, 26)}}
example['base_date'] = pd.to_datetime(example['base_date'].astype(str), format='%d%m%Y')
example['base_date'] = example['base_date'].dt.date