Please note, this is a STATIC archive of website www.w3resource.com from 19 Jul 2022, cach3.com does not collect or store any user information, there is no "phishing" involved.
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

Find current directory and file's directory:

To get the full path to the directory a Python file is contained in, write this in that file:

import os 
dir_path = os.path.dirname(os.path.realpath(__file__))

(Note that the incantation above won't work if you've already used os.chdir() to change your current working directory, since the value of the __file__ constant is relative to the current working directory and is not changed by an os.chdir() call.)

To get the current working directory use

import os
cwd = os.getcwd()

Documentation references for the modules, constants and functions used above:

  • The os and os.path modules.
  • The __file__ constant
  • os.path.realpath(path) (returns "the canonical path of the specified filename, eliminating any symbolic links encountered in the path")
  • os.path.dirname(path) (returns "the directory name of pathname path")
  • os.getcwd() (returns "a string representing the current working directory")
  • os.chdir(path) ("change the current working directory to path")

Ref: https://bit.ly/3fy0R6m