2016-11-26 14 views
9

Jak przekonwertować indeks pandy ciągów w formacie datetimepython pandy przekonwertować indeks datetime

mój dataframe „df” jest jak ten

     value   
2015-09-25 00:46 71.925000 
2015-09-25 00:47 71.625000 
2015-09-25 00:48 71.333333 
2015-09-25 00:49 64.571429 
2015-09-25 00:50 72.285714 

ale indeks jest typu ciąg, ale Need to format datetime, ponieważ pojawia się błąd

'Index' object has no attribute 'hour' 

podczas korzystania

df['A'] = df.index.hour 
+0

'df.index.to_datetime()' lub 'df.index = pandas.to_datetime (df.index) '(były teraz wycofane). – AChampion

+0

type (df.index [1]) nadal zwraca 'str' –

+0

Powyższe dane są konwertowane na 'datetime' no issues -' type (df.index [1]) == pandas.tslib.Timestamp'. Czy masz złe dane w pozostałej części ramki danych? – AChampion

Odpowiedz

18

Powinno działać zgodnie z oczekiwaniami. Spróbuj uruchomić następujący przykład.

import pandas as pd 
import io 

data = """value   
"2015-09-25 00:46" 71.925000 
"2015-09-25 00:47" 71.625000 
"2015-09-25 00:48" 71.333333 
"2015-09-25 00:49" 64.571429 
"2015-09-25 00:50" 72.285714""" 

df = pd.read_table(io.StringIO(data), delim_whitespace=True) 

# Converting the index as date 
df.index = pd.to_datetime(df.index) 

# Extracting hour & minute 
df['A'] = df.index.hour 
df['B'] = df.index.minute 
df 

#       value A B 
# 2015-09-25 00:46:00 71.925000 0 46 
# 2015-09-25 00:47:00 71.625000 0 47 
# 2015-09-25 00:48:00 71.333333 0 48 
# 2015-09-25 00:49:00 64.571429 0 49 
# 2015-09-25 00:50:00 72.285714 0 50 
Powiązane problemy