w3resource

Pandas Datetime: Get all the sighting days of the unidentified flying object (ufo) which are less than or equal to 40 years

Pandas Datetime: Exercise-4 with Solution

Write a Pandas program to get all the sighting days of the unidentified flying object (ufo) which are less than or equal to 40 years (365*40 days).

Sample Solution :

Python Code :

import pandas as pd
import datetime
df = pd.read_csv(r'ufo.csv')
df['Date_time'] = df['Date_time'].astype('datetime64[ns]')
now = pd.to_datetime('today')
duration = datetime.timedelta(days=365*40)
print("Original Dataframe:")
print(df.head())
print("\nCurrent date:")
print(now)
print("\nSighting days of the unidentified flying object (ufo) which are less than or equal to 40 years (365*40 days):")
df =  df[now - df['Date_time'] <= duration]
print(df.head())

Sample Output:

Original Dataframe:
            Date_time                  city     ...       latitude   longitude
0 1910-06-01 15:00:00           wills point     ...      32.709167  -96.008056
1 1920-06-11 21:00:00                cicero     ...      40.123889  -86.013333
2 1929-07-05 14:00:00  buchanan  (or burns)     ...      43.642500 -118.627500
3 1931-06-01 13:00:00               abilene     ...      38.917222  -97.213611
4 1939-06-01 20:00:00              waterloo     ...      34.918056  -88.064167

[5 rows x 11 columns]

Current date:
2019-07-11 11:55:03.162800

Sighting days of the unidentified flying object (ufo) which are less than or equal to 40 years (365*40 days):
              Date_time          city     ...       latitude   longitude
149 1980-01-01 01:00:00  indianapolis     ...      39.768333  -86.158056
150 1980-01-01 23:30:00      chicopee     ...      42.148611  -72.608333
151 1980-03-01 00:30:00        oxford     ...      41.433889  -73.117222
152 1980-03-01 18:00:00        bisbee     ...      31.448056 -109.927778
153 1981-01-01 00:01:00      el cajon     ...      32.794722 -116.961667

[5 rows x 11 columns]

Python Code Editor:


Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a Pandas program to get the current date, oldest date and number of days between Current date and oldest date of Ufo dataset.
Next: Write a Pandas program to get all the sighting days of the unidentified flying object (ufo) between 1950-10-10 and 1960-10-10.

What is the difficulty level of this exercise?



Python: Tips of the Day

Merges two or more lists into a list of lists, combining elements from each of the input lists based on their positions

Example:

def tips_merge(*args, fill_value=None):
  max_length = max([len(lst) for lst in args])
  result = []
  for i in range(max_length):
    result.append([
      args[k][i] if i < len(args[k])
	  else fill_value for k in range(len(args))
    ])
  return result
print(tips_merge(['x', 'y'], [1, 2], [True, False])) 
print(tips_merge(['x'], [1, 2], [True, False])) 
print(tips_merge(['x'], [1, 2], [True, False], fill_value = '_')) 

Output:

[['x', 1, True], ['y', 2, False]]
[['x', 1, True], [None, 2, False]]
[['x', 1, True], ['_', 2, False]]