w3resource

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


4. Recent UFO Sightings (≤ 40 Years)

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]

For more Practice: Solve these Related Problems:

  • Write a Pandas program to filter UFO sightings that occurred within the last 40 years (i.e. ≤ 14,600 days) from today’s date.
  • Write a Pandas program to create a new DataFrame containing only UFO sighting records from the past 40 years.
  • Write a Pandas program to add a column indicating whether each sighting is within 40 years and then filter the DataFrame accordingly.
  • Write a Pandas program to calculate and display the percentage of UFO sightings that occurred within the last 40 years.

Go to:


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.

Python Code Editor:

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

What is the difficulty level of this exercise?



Follow us on Facebook and Twitter for latest update.