2016-12-08 42 views
0

我已經進入了下面的代碼獲取持續時間分成小時拉姆達持續時間小時

quiz_df['hours'] = quiz_df['duration'].apply(lambda time: time.total_seconds()/60/60) 

持續時間的格式10 days 03:35:00

it returns the error AttributeError: 'numpy.timedelta64' object has no attribute 'total_seconds' 

我試圖將其轉換爲秒鐘,然後小時它給我同樣的錯誤。

回答

0

你不需要apply做到這一點。您可以使用dt訪問器訪問timedelta64功能。

pd.to_timedelta(quiz_df.duration).dt.total_seconds()/3600 
0
quiz_df['hours'] = quiz_df['duration'].apply(lambda time: pd.Timedelta(time).total_seconds()/3600.0) 

工作都好。

+0

儘量避免'apply'只要有可能。它可能會非常慢。可以整個序列轉換用'pd.to_timedelta' –

+0

雖然此代碼段可以解決的問題,[包括一個解釋](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)真的有助於提高你的文章的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。也請儘量不要用解釋性註釋來擠佔代碼,這會降低代碼和解釋的可讀性! – kayess