Skip to content Skip to sidebar Skip to footer

How To Find Out Whether It Is Day Or Night Using Timestamp

I want to find out whether it is day or night from the 'timestamp' column in my data frame. The time stamp columns have values as follows: 20:0 , 14:30, 6:15, 5:0, 4:0 etc. I used

Solution 1:

timestamp= ['6:00', '18:00', '18:01', '5:59']
fortimeintimestamp:
   hourMin = time.split(":")
   hour=int(hourMin[0])
   mint =int(hourMin[1])
   if hour>=6andhour<=18:
       if(hour==18):
           if(mint >0):
               print("Night\n")
           else:
               print("Day\n")
       else:
           print("Day\n")
   else:
       print("Night\n")

Solution 2:

Convert values to timedeltas with to_timedelta and compare by Series.between, then create new column by numpy.where:

data = pd.DataFrame({
    'timestamp' : ['6:00', '18:00', '18:01', '5:59'],

})

mask = (pd.to_timedelta(data['timestamp'] + ':00')
          .between(pd.Timedelta('6h'),pd.Timedelta('18h')))
data['new'] = np.where(mask, 'Day', 'Night')
print (data)
  timestamp    new
06:00    Day
118:00    Day
218:01  Night
35:59  Night

Solution 3:

I'd take the hours part, parse it as int, and check if it's between 6 and 18:

hour = int(x.split(':'))[0]
if hour >= 6and hour < 18:
    print('Day')
else:
    print('Night')

Post a Comment for "How To Find Out Whether It Is Day Or Night Using Timestamp"