2015-09-28 7 views
6

को कम नमस्ते मैं है निम्नलिखित dataframeपायथन: परिशुद्धता पांडा टाइमस्टैम्प dataframe

df = 

     Record_ID  Time 
     94704 2014-03-10 07:19:19.647342 
     94705 2014-03-10 07:21:44.479363 
     94706 2014-03-10 07:21:45.479581 
     94707 2014-03-10 07:21:54.481588 
     94708 2014-03-10 07:21:55.481804 

यह संभव करने के लिए निम्न है है?

df1 = 

     Record_ID  Time 
     94704 2014-03-10 07:19:19 
     94705 2014-03-10 07:21:44 
     94706 2014-03-10 07:21:45 
     94707 2014-03-10 07:21:54 
     94708 2014-03-10 07:21:55 
+0

'टाइमटाइम प्रकार 'प्रकार का समय है? –

+0

क्या इससे कोई फर्क पड़ता है? – EdChum

+0

यदि मैं 'टाइप (df.Time [0]) को रेट करता हूं, तो यह' pandas.tslib.Timestamp' – emax

उत्तर

5

तुम सच में datetime की microsecond हिस्सा निकालना होगा, तो आप Timestamp.replace विधि के साथ Series.apply विधि के साथ उपयोग कर सकते हैं, श्रृंखला भर में लागू करने के लिए 0 साथ microsecond भाग को बदलने के लिए। उदाहरण -

df['Time'] = df['Time'].apply(lambda x: x.replace(microsecond=0)) 

डेमो -

In [25]: df 
Out[25]: 
    Record_ID      Time 
0  94704 2014-03-10 07:19:19.647342 
1  94705 2014-03-10 07:21:44.479363 
2  94706 2014-03-10 07:21:45.479581 
3  94707 2014-03-10 07:21:54.481588 
4  94708 2014-03-10 07:21:55.481804 

In [26]: type(df['Time'][0]) 
Out[26]: pandas.tslib.Timestamp 

In [27]: df['Time'] = df['Time'].apply(lambda x: x.replace(microsecond=0)) 

In [28]: df 
Out[28]: 
    Record_ID    Time 
0  94704 2014-03-10 07:19:19 
1  94705 2014-03-10 07:21:44 
2  94706 2014-03-10 07:21:45 
3  94707 2014-03-10 07:21:54 
4  94708 2014-03-10 07:21:55 
+0

यह वही है जो मैं ढूंढ रहा था। – emax

7

आप अंतर्निहित NumPy datetime64[ns] मान परिवर्तित कर सकते हैं करने के लिए datetime64[s] मान:

In [11]: df['Time'] = df['Time'].values.astype('datetime64[s]') 

In [12]: df 
Out[12]: 
    Record_ID    Time 
0  94704 2014-03-10 07:19:19 
1  94705 2014-03-10 07:21:44 
2  94706 2014-03-10 07:21:45 
3  94707 2014-03-10 07:21:54 
4  94708 2014-03-10 07:21:55 

ध्यान दें कि एक पांडा DataFrame के एक स्तंभ के लिए इन datetime64[s] मूल्यों फिर नियत स्वचालित रूप से उन्हें datetime64[ns] में परिवर्तित कर देता है, इसलिए अंतिम परिणाम अभी भीके रूप में संग्रहीत हैमान, लेकिन astype पर कॉल सेकंड के आंशिक भाग को निकालने का कारण बनता है।

+0

क्या पांडा केवल 'डेटाटाइम 64 [एनएस] 'का समर्थन करते हैं? क्या परिशुद्धता को बदलने के लिए एक निर्मित तरीका है। केवल तारीखों की तरह कहो? – mnky9800n

+1

@ mnky9800n: वर्तमान में, पांडस 'एनडीफ़्रेम 'केवल समर्थन' डेटाटाइम 64 [एनएस]'। – unutbu

+0

क्या अन्य डेटाटाइम का समर्थन करने की कोई योजना है? मुझे लगता है कि स्पष्ट कारण हैं क्योंकि डेटाटाइम 64 [एनएस] श्रेणियां केवल 600 साल लंबी हो सकती हैं। – mnky9800n

संबंधित मुद्दे