python pandas извлекает уникальные даты из временных рядов

У меня есть DataFrame, который содержит много внутридневных данных, DataFrame имеет несколько дней данных, даты не являются непрерывными.

2012-10-08 07:12:22 0.0 0 0 2315.6 0 0.0 0 2012-10-08 09:14:00 2306.4 20 326586240 2306.4 472 2306.8 4 2012-10-08 09:15:00 2306.8 34 249805440 2306.8 361 2308.0 26 2012-10-08 09:15:01 2308.0 1 53309040 2307.4 77 2308.6 9 2012-10-08 09:15:01.500000 2308.2 1 124630140 2307.0 180 2308.4 1 2012-10-08 09:15:02 2307.0 5 85846260 2308.2 124 2308.0 9 2012-10-08 09:15:02.500000 2307.0 3 128073540 2307.0 185 2307.6 11 ...... 2012-10-10 07:19:30 0.0 0 0 2276.6 0 0.0 0 2012-10-10 09:14:00 2283.2 80 98634240 2283.2 144 2283.4 1 2012-10-10 09:15:00 2285.2 18 126814260 2285.2 185 2285.6 3 2012-10-10 09:15:01 2285.8 6 98719560 2286.8 144 2287.0 25 2012-10-10 09:15:01.500000 2287.0 36 144759420 2288.8 211 2289.0 4 2012-10-10 09:15:02 2287.4 6 109829280 2287.4 160 2288.6 5 ...... 

Как я могу извлечь уникальную дату в формате даты и времени из вышеуказанного DataFrame? Чтобы получить результат, как [2012-10-08, 2012-10-10]

2 Solutions collect form web for “python pandas извлекает уникальные даты из временных рядов”

Если у вас есть Series например:

 In [116]: df["Date"] Out[116]: 0 2012-10-08 07:12:22 1 2012-10-08 09:14:00 2 2012-10-08 09:15:00 3 2012-10-08 09:15:01 4 2012-10-08 09:15:01.500000 5 2012-10-08 09:15:02 6 2012-10-08 09:15:02.500000 7 2012-10-10 07:19:30 8 2012-10-10 09:14:00 9 2012-10-10 09:15:00 10 2012-10-10 09:15:01 11 2012-10-10 09:15:01.500000 12 2012-10-10 09:15:02 Name: Date 

где каждый объект является Timestamp :

 In [117]: df["Date"][0] Out[117]: <Timestamp: 2012-10-08 07:12:22> 

вы можете получить только дату, вызвав .date() :

 In [118]: df["Date"][0].date() Out[118]: datetime.date(2012, 10, 8) 

и Series имеют метод .unique() . Таким образом, вы можете использовать map и lambda :

 In [126]: df["Date"].map(lambda t: t.date()).unique() Out[126]: array([2012-10-08, 2012-10-10], dtype=object) 

или используйте метод Timestamp.date :

 In [127]: df["Date"].map(pd.Timestamp.date).unique() Out[127]: array([2012-10-08, 2012-10-10], dtype=object) 

Использование регулярного выражения:

 (\d{4}-\d{2}-\d{2}) 

Запустите его с re.findall функции re.findall чтобы получить все совпадения:

 result = re.findall(r"(\d{4}-\d{2}-\d{2})", subject) 
  • Агрегирование данных и получение суммы и количества
  • pandas parse csv с левыми и правыми символами цитат
  • Объединить последовательные строки с одинаковыми значениями столбцов
  • Инвертировать индекс и столбцы в pandas DataFrame
  • Как загрузить фрейм данных, сохраненный в pandas, в виде файла HDF5 в R?
  • Пользовательская сортировка в кадре данных pandas
  • Pandas / Python: ошибка 2D гистограммы с ошибкой значения
  • Pandas-образное преобразование сгруппированных данных на pyspark DataFrame
  • Методы сопоставления в нескольких столбцах в Pandas DataFrame
  • Групповой фрейм и получить сумму И счет?
  • Выберите строки Pandas на основе индекса списка
  • Python - лучший язык программирования в мире.