w3resource

Pandas Datetime: Count year-country wise frequency of reporting dates of unidentified flying object (UFO)

Pandas Datetime: Exercise-10 with Solution

Write a Pandas program to count year-country wise frequency of reporting dates 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]')
print("Original Dataframe:")
print(df.head())
df['Year'] = df['Date_time'].apply(lambda x: "%d" % (x.year))
result = df.groupby(['Year', 'country']).size()
print("\nCountry-year wise frequency of reporting dates of UFO:")
print(result)

Sample Output:

Original Dataframe:
            Date_time                  city     ...       latitude   longitude
0 1949-10-10 20:30:00            san marcos     ...      29.883056  -97.941111
1 1949-10-10 21:00:00          lackland afb     ...      29.384210  -98.581082
2 1955-10-10 17:00:00  chester (uk/england)     ...      53.200000   -2.916667
3 1956-10-10 21:00:00                  edna     ...      28.978333  -96.645833
4 1960-10-10 20:00:00               kaneohe     ...      21.418056 -157.803611

[5 rows x 11 columns]

Country-year wise frequency of reporting dates of UFO:
Year  country
1949  us          1
1955  gb          1
1956  us          1
1960  us          1
1961  us          1
1965  gb          1
      us          1
1966  us          2
1968  us          2
1970  us          2
1971  us          1
1972  us          2
1973  us          1
1974  gb          1
      us          2
1975  us          1
1976  gb          1
      us          1
1977  us          2
1978  us          1
1979  us          3
1980  us          3
1984  us          3
1985  gb          1
1988  us          4
1989  us          2
1990  us          1
1991  us          2
1992  us          4
1993  us          2
1994  ca          1
      us          2
1995  us          2
1996  us          3
1997  us          4
1998  ca          1
      us          8
1999  us         10
2000  ca          1
      us          6
2001  au          1
      ca          1
      us          6
2002  au          1
      ca          1
      us          5
2003  us          8
2004  ca          1
      us          1
dtype: int64

Python Code Editor:

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

Previous: Write a Pandas program to convert given datetime to timestamp.
Next: Write a Pandas program to extract unique reporting dates of unidentified flying object (UFO).

What is the difficulty level of this exercise?



Follow us on Facebook and Twitter for latest update.

Python: Tips of the Day

F strings:

It is a common practice to add variables inside strings. F strings are by far the coolest way of doing it. To appreciate the f strings more, let's first perform the operation with the format function.

name = 'Owen'
age = 25
print("{} is {} years old".format(name, age))

Output:

Owen is 25 years old

We specify the variables that go inside the curly braces by using the format function at the end. F strings allow for specifying the variables inside the string.

name = 'Owen'
age = 25
print(f"{name} is {age} years old")

Output:

Owen is 25 years old

F strings are easier to follow and type. Moreover, they make the code more readable.

A, B, C = {2, 4, 6}
print(A, B, C)
A, B, C = ['p', 'q', 'r']
print(A, B, C)

Output:

2 4 6
p q r