в пандах, как я могу группировать по будням () для столбца datetime?

Я хотел бы отфильтровать выходные данные и просматривать данные только по будням (mon (0) -fri (4)). Я новичок в пандах, что лучший способ сделать это в пандах?

import datetime from pandas import * data = read_csv("data.csv") data.my_dt Out[52]: 0 2012-10-01 02:00:39 1 2012-10-01 02:00:38 2 2012-10-01 02:01:05 3 2012-10-01 02:01:07 4 2012-10-01 02:02:03 5 2012-10-01 02:02:09 6 2012-10-01 02:02:03 7 2012-10-01 02:02:35 8 2012-10-01 02:02:33 9 2012-10-01 02:03:01 10 2012-10-01 02:08:53 11 2012-10-01 02:09:04 12 2012-10-01 02:09:09 13 2012-10-01 02:10:20 14 2012-10-01 02:10:45 ... 

Я хотел бы сделать что-то вроде:

 weekdays_only = data[data.my_dt.weekday() < 5] 

AttributeError: объект 'numpy.int64' не имеет атрибута 'weekday'

но это не сработает, я не совсем понял, как доступны объекты столбца datetime.

Конечная цель состоит в том, чтобы упорядочивать иерархию по будним часам, например:

 monday, 0-6, 7-12, 13-18, 19-23 tuesday, 0-6, 7-12, 13-18, 19-23 

  • подсчитайте частоту, в которой происходит значение в столбце dataframe
  • Pandas DataFrame нарезка днем ​​/ часом / минутой
  • pydata blaze: позволяет ли параллельная обработка или нет?
  • Определите кластеры, связанные дельтой слева и другой треугольник справа
  • Круговая зависимость в кадре данных панд
  • Отбросить несколько столбцов в пандах
  • ошибка: код в pandas числовые разрывы столбцов с ошибкой форматирования строки
  • Округление записей в Pandas DafaFrame
  • 2 Solutions collect form web for “в пандах, как я могу группировать по будням () для столбца datetime?”

    ваш вызов функции «weekday» не работает, поскольку он работает с индексом data.my_dt, который является массивом int64 (откуда приходит сообщение об ошибке)

    вы можете создать новый столбец в данных, содержащих дни недели, используя что-то вроде:

     data['weekday'] = data['my_dt'].apply(lambda x: x.weekday()) 

    то вы можете фильтровать по будням:

     weekdays_only = data[data['weekday'] < 5 ] 

    надеюсь, это поможет

    Более быстрый способ – использовать DatetimeIndex.weekday , например:

     temp = pd.DatetimeIndex(data['my_dt']) data['weekday'] = temp.weekday 

    Гораздо быстрее, особенно для большого количества строк. Для получения дополнительной информации проверьте этот ответ.

    Interesting Posts

    проблемы с памятью при установке пакетов на сервере Ubuntu

    Как разбить данные беседы на пары (Контекст, Ответ)

    Сортировка Python с использованием ключа и лямбда, что делает лямбда?

    Написание анимированных gif с помощью Wand и ImageMagick

    Как найти изображение в другом изображении с помощью python

    Функция OpenCV findChessboardCorners не работает в (по-видимому) простом сценарии

    ImportError: нет модуля с именем PIL

    Несогласованная SignatureDoesNotMatch Amazon S3 с django-трубопроводом, s3boto и хранилищами

    Запись в CSV, получение «Ошибка: необходимость выхода» для пустой строки

    Почему вызов entry.get () дает мне «недопустимое имя команды»?

    Каковы сценарии, для которых применяются различные идиомы загрузки данных TensorFlow?

    добавить несколько значений для одного ключа в словаре Python

    Пакеты Python не устанавливаются в virtualenv с помощью pip

    Как создать кнопку на холсте tkinter?

    Python: конвертировать кортеж в разделенную запятыми строку

    Python - лучший язык программирования в мире.