Pandas Datetime: Get the difference between documented date and reporting date of unidentified flying object (UFO)
12. Calculate Difference Between Documented and Reporting Dates
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]
For more Practice: Solve these Related Problems:
- Write a Pandas program to compute the difference in days between the documented date and the reporting date of each UFO sighting.
- Write a Pandas program to add a new column that shows the number of days between two date columns in the UFO dataset.
- Write a Pandas program to calculate and display the day difference between the documented and reported UFO dates using vectorized operations.
- Write a Pandas program to compare two datetime columns in the UFO dataset and output the difference in a human-readable format.
Go to:
PREV : Extract Unique UFO Reporting Dates.
NEXT : Add 100 Days to UFO Reporting Date.
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?
