Konwertuj kolumnę Pandy na DateTime

Mam jedno pole w ramce danych pandy, które zostało zaimportowane w formacie string. Powinna to być zmienna datetime. Jak przekonwertować go do kolumny datetime, a następnie filtrować na podstawie daty.

Przykład:

  • Nazwa ramki danych: raw_data
  • Nazwa Kolumny: Mycol
  • wartość Format w kolumnie: '05SEP2014:00:00:00.000'
Author: Kasrâmvd, 2014-11-05

3 answers

Użyj to_datetime funkcja, określająca format , aby pasował do Twoich danych.

raw_data['Mycol'] =  pd.to_datetime(raw_data['Mycol'], format='%d%b%Y:%H:%M:%S.%f')
 193
Author: chrisb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-05 19:40:19

Możesz użyć metody DataFrame .apply() aby operować na wartościach w Mycol:

>>> df = pd.DataFrame(['05SEP2014:00:00:00.000'],columns=['Mycol'])
>>> df
                    Mycol
0  05SEP2014:00:00:00.000
>>> import datetime as dt
>>> df['Mycol'] = df['Mycol'].apply(lambda x: 
                                    dt.datetime.strptime(x,'%d%b%Y:%H:%M:%S.%f'))
>>> df
       Mycol
0 2014-09-05
 34
Author: bernie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-05 17:51:24
raw_data['Mycol'] =  pd.to_datetime(raw_data['Mycol'], format='%d%b%Y:%H:%M:%S.%f')

Działa, jednak skutkuje ostrzeżeniem Pythona O Wartość próbuje być ustawiona na kopii wycinka z ramki danych. Spróbuj użyć .loc[row_indexer,col_indexer] = value zamiast

Domyślam się, że jest to spowodowane jakimś indeksowaniem łańcuchów.

 9
Author: Darth BEHFANS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-14 07:52:54