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 the difference between documented date and reporting date of unidentified flying object (UFO)

Pandas Datetime: Exercise-12 with Solution

Write a Pandas program to get the difference (in days) between documented date and reporting date of unidentified flying object (UFO).

Sample Solution :

Python Code :

import pandas as pd
df = pd.read_csv(r'ufo.csv')
df['Date_time'] = df['Date_time'].astype('datetime64[ns]')
df['date_documented'] = df['date_documented'].astype('datetime64[ns]')
print("Original Dataframe:")
print(df.head())
print("\nDifference (in days) between documented date and reporting date of UFO:")
df['Difference'] = (df['date_documented'] - df['Date_time']).dt.days
print(df)

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]

Difference (in days) between documented date and reporting date of UFO:
              Date_time    ...     Difference
0   1910-06-01 15:00:00    ...          34652
1   1920-06-11 21:00:00    ...          32476
2   1929-07-05 14:00:00    ...          26704
3   1931-06-01 13:00:00    ...          27286
4   1939-06-01 20:00:00    ...          27293
5   1939-07-07 02:00:00    ...          24163
6   1941-06-01 13:00:00    ...          22772
7   1942-06-01 22:30:00    ...          23807
8   1944-01-01 12:00:00    ...          22120
9   1944-06-01 12:00:00    ...          23720
10  1944-04-02 11:00:00    ...          22293
11  1945-06-01 13:30:00    ...          23913
12  1945-06-07 07:00:00    ...          22001
13  1945-08-08 12:00:00    ...          21345
14  1945-07-10 01:30:00    ...          21322
15  1946-02-01 17:00:00    ...          21801
16  1946-07-01 13:30:00    ...          22626
17  1946-01-08 02:00:00    ...          22700
18  1947-06-01 02:30:00    ...          19689
19  1947-06-01 17:00:00    ...          24196
20  1947-07-01 20:00:00    ...          21108
21  1947-07-01 20:00:00    ...          21108
22  1948-08-01 02:00:00    ...          20863
23  1948-05-10 19:00:00    ...          20794
24  1948-12-12 23:30:00    ...          22011
25  1949-05-01 14:00:00    ...          19314
26  1949-07-01 11:00:00    ...          23550
27  1949-07-01 16:00:00    ...          20142
28  1949-04-10 15:00:00    ...          20105
29  1950-06-01 16:00:00    ...          21103
..                  ...    ...            ...
317 2002-03-01 06:15:00    ...             17
318 2002-08-01 15:25:00    ...             14
319 2002-01-02 17:30:00    ...              8
320 2002-07-03 01:00:00    ...             43
321 2002-07-04 20:23:00    ...             21
322 2002-09-05 23:00:00    ...           1694
323 2002-10-05 23:00:00    ...              9
324 2002-05-06 15:50:00    ...              7
325 2002-01-07 18:00:00    ...              3
326 2002-09-08 16:00:00    ...              4
327 2002-05-09 18:00:00    ...              4
328 2002-05-10 23:30:00    ...            226
329 2002-01-11 18:45:00    ...             17
330 2002-02-12 20:00:00    ...              9
331 2003-04-01 01:00:00    ...             62
332 2003-10-02 02:45:00    ...              4
333 2003-11-04 20:00:00    ...              3
334 2003-01-06 10:10:00    ...             63
335 2003-05-07 02:00:00    ...              1
336 2003-07-08 00:30:00    ...              7
337 2003-04-09 21:00:00    ...             12
338 2003-03-10 20:52:00    ...             10
339 2003-07-11 20:50:00    ...             74
340 2004-02-01 01:00:00    ...             10
341 2004-10-02 18:20:00    ...             24
342 2004-04-05 20:35:00    ...              3
343 2004-10-06 23:00:00    ...             20
344 2004-11-07 20:30:00    ...              1
345 2004-12-08 05:30:00    ...            971
346 2004-02-10 05:15:00    ...              1

[347 rows x 12 columns]

Python Code Editor:


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

Previous: Write a Pandas program to extract unique reporting dates of unidentified flying object (UFO).
Next: Write a Pandas program to add 100 days with reporting date of unidentified flying object (UFO).

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