2016-11-26 20 views
9

के सूचकांक में परिवर्तित कैसे मैं datetime प्रारूप करने के लिए तार का एक पांडा सूचकांक परिवर्तितअजगर पांडा datetime

मेरी dataframe '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 

की तरह है, लेकिन सूचकांक प्रकार स्ट्रिंग की है, लेकिन मैं यह एक datetime प्रारूप की जरूरत है क्योंकि मैं त्रुटि

'Index' object has no attribute 'hour' 

जब

df['A'] = df.index.hour 
का उपयोग कर
+0

'df.index.to_datetime()' या 'df.index = pandas.to_datetime (df.index)' (अब पूर्व हटा दिया गया है)। – AChampion

+0

प्रकार (df.index [1]) अभी भी 'str' –

+0

लौटाता है ऊपर दिया गया डेटा 'डेटाटाइम' में कोई समस्या नहीं - 'प्रकार (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 
संबंधित मुद्दे