मेरे पास पांडा डीएफ में कुछ डेटा है जैसे:

time                            delay 
2017/06/14 10:02:10.144927 PM   15 

समय स्पष्ट रूप से एक टाइमस्टैम्प है और देरी में सेकंड में है। df.dtypes क्रमशः datetime64[ns] और int हैं। मैं एक कॉलम जोड़ना चाहता हूं जिसमें मूल समय का टाइमस्टैम्प है और सेकंड बीत चुके हैं, उदाहरण:

time                            delay   end_time
2017/06/14 10:02:10.144927 PM   15      2017/06/14 10:02:25.144927 PM

मैं करने की कोशिश कर रहा हूँ

df["end_time"] = df.time.add(datetime.timedelta(seconds = df.time))

हालांकि मुझे एक त्रुटि मिलती है TypeError: unsupported type for timedelta seconds component: Series। यह मैं कैसे करूंगा? क्या मुझे लैम्ब्डा चाहिए?

0
lte__ 28 मई 2019, 15:53

1 उत्तर

सबसे बढ़िया उत्तर

कन्वर्ट करने के लिए to_timedelta का इस्तेमाल करें टाइमडेल्टा के लिए पूर्णांक कॉलम:

df["end_time"] = pd.to_datetime(df['time']).add(pd.to_timedelta(df.delay, unit='s'))
print (df)
                            time  delay                   end_time
0  2017/06/14 10:02:10.144927 PM     15 2017-06-14 22:02:25.144927

यदि आउटपुट में समान प्रारूप की आवश्यकता है तो जोड़ें। Series.dt.strftime:

df["end_time"] = (pd.to_datetime(df['time'])
                   .add(pd.to_timedelta(df.delay, unit='s'))
                   .dt.strftime('%Y/%m/%d %H:%M:%S.%f %p'))
print (df)
                            time  delay                       end_time
0  2017/06/14 10:02:10.144927 PM     15  2017/06/14 22:02:25.144927 PM
1
jezrael 28 मई 2019, 13:01