0

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
marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
AcoffeePls
  • 11
  • 3

2 Answers2

0

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!

Amit Maraj
  • 344
  • 1
  • 5
0

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()
Ynjxsjmh
  • 28,441
  • 6
  • 34
  • 52