亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

遍歷具有時間值并返回秒的熊貓數據框列

遍歷具有時間值并返回秒的熊貓數據框列

江戶川亂折騰 2022-10-18 19:50:14
我在 pandas 數據框中有一列,如下所示:Time:16:45:1516:45:3116:45:59..我想將這些時間值轉換為秒,我做了以下事情:def get_sec(arr):    h,m,s = arr.split(':')    return int(h) * 3600 + int(m) * 60 + int(s)sec_val = []for i in range(len(df['Time'])):    sec_val.append(get_sec(df['Time'][i]))它給出了這個錯誤:'datatime.time' object has no attribute 'split'雖然如果我對一個字符串使用相同的代碼,它可以工作,但是當我在 for 循環中使用它時,它會給出這個錯誤,關于如何解決它的任何想法?
查看完整描述

1 回答

?
月關寶盒

TA貢獻1772條經驗 獲得超5個贊

In [24]: df['TimeInSeconds'] = df['Time'].apply(lambda x : x.hour *3600 + x.minute * 60 + x.second )

看起來您的列是 datetime.time 類型,因此您可以直接使用它的屬性,例如小時、分鐘、秒,而不是像上面那樣進行字符串拆分。希望能幫助到你 :)


編輯:


如果是字符串,我們可以轉換所有時間對象,然后使用 apply


import datetime


In [38]: df['Time' ] = df['Time'].astype(str).apply(lambda x : datetime.datetime.strptime(x, '%H:%M:%S' ).time() )


In [39]: df['TimeInSeconds'] = df['Time'].apply(lambda x : x.hour *3600 + x.minute * 60 + x.second )



查看完整回答
反對 回復 2022-10-18
  • 1 回答
  • 0 關注
  • 103 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號