Проверьте условие в столбце _ Pandas Python - PullRequest
0 голосов
/ 08 апреля 2020

Фрейм данных: Существующий

+------+----------+
| SHOP |   TIME   |
+------+----------+
| AAA  | 08:52:00 |
| BBB  | 08:52:00 |
| BBB  | 08:57:00 |
| CCC  | 09:00:00 |
| CCC  | 09:00:00 |
+------+----------+

Фрейм данных: Требуется

+------+----------+------------+
| SHOP |   TIME   |  CATEGORY  |
+------+----------+------------+
| AAA  | 08:53:00 | Work Time  |
| BBB  | 08:57:00 | Break Time |
| CCC  | 09:00:00 | Break Time |
| CCC  | 09:00:00 | Break Time |
+------+----------+------------+

ВРЕМЯ ПЕРЕРЫВА - ЧЧ: ММ: СС а) Магазин - ААА С 08:54:00 до 09:00:00 С 11:45:00 до 12:45:00 С 01:30:00 до 01:37:00

б) Магазин - BBB С 08:54:00 до 09:00:00 С 12:00:00 до 12:30:00 С 01:35:00 до 01:42:00

Я новичок в python. Пробовал разные комбинации, но это было сложно. Есть ли простой способ? Пример метода

def categorize(row):
  if row["SHOP"] == "AAA" and row["TIME"] == "11:45:00":
    return "Break Time"
  else:
    return "Work Time"

1 Ответ

0 голосов
/ 08 апреля 2020

Одним из способов категоризации этого, который может быть немного слишком пугающим, является следующее, в котором с помощью нескольких условий np.where вы определяете, какие случаи должны быть записаны как «Время перерыва», и в конце, если не будет «Время работы»

df['Category'] = np.where((df['SHOP']=='AAA') & (df['TIME'] >= '08:54:00') & (df['TIME'] <= '09:00:00'), 'Break Time', 
                 np.where((df['SHOP']=='AAA') & (df['TIME'] >= '11:45:00') & (df['TIME'] <= '12:45:00'), 'Break Time',
.......
,'Work Time')) ### as many closing brackets as opening np.where conditions
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...