2016-11-26 2 views
9

にインデックスを変換Pythonのパンダは、私が日時書式に文字列のパンダのインデックスを変換するにはどうすればよい日時

私のデータフレーム「DFが」この

     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['A'] = df.index.hour 
を使用しているとき、私はエラーに

'Index' object has no attribute 'hour' 

を得るためにそれを日時フォーマットを必要とします

+0

'df.index.to_datetime()'や 'df.index = pandas.to_datetime(df.index)'(前者が廃止されています)。 – AChampion

+0

タイプ(df.index [1])はまだ 'str'を返します –

+0

上記のデータは 'datetime'問題なし - type(df.index [1])== pandas.tslib.Timestamp'に変換されます。残りのデータフレームに不良データがありますか? – AChampion

答えて

18

期待どおりに動作するはずです。次の例を実行してみてください。

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 
関連する問題