'In Pyton im tring to convert a whole dataset of hr:min:secs into seconds
I'm trying to get the function i made to apply to columns I specified by separating in the iloc function
# Import useful packages for data science
import numpy as np
import pandas as pd
import os
import sys
import time
import datetime
import time
#setting the triathlone data set as TD
TD=pd.read_csv("/Applications/TriathloneData.csv")
TD
def hms_to_seconds(t):
if(type(t) != str):
return np.NaN
else:
h, m, s = [int(i) for i in t.split(':')]
return 3600*h + 60*m + s
# first I'll separate each column I need to apply the function to
TDdf = pd.DataFrame(TD)
TDdfTime = TDdf.iloc[:,6:12]
TDdfTime
Solution 1:[1]
You can do this pretty easily with the .apply() function available to pandas DataFrames. You can find your answer here: https://stackoverflow.com/a/34962199/8222441. Instead of using a lambda however, you can just pass your function. Hope this helps!
Solution 2:[2]
You can convert your date column to Datetime object and use total_seconds of timedelta object to get total seconds
df['date'] = pd.to_datetime(df['date'])
df['seconds'] = df['date'].dt.time.astype(str).apply(pd.to_timedelta).dt.total_seconds()
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Amit Maraj |
| Solution 2 | Ynjxsjmh |
