w3resource

Pandas Datetime: Create a plot of distribution of UFO observation time

Pandas Datetime: Exercise-20 with Solution

Write a Pandas program to create a plot of distribution of UFO (unidentified flying object) observation time.

Sample Solution:

Python Code:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv(r'ufo.csv')
df['duration_sec'] = (df['length_of_encounter_seconds'].astype(float))/60
s = df["duration_sec"].quantile(0.95)
temp = df['duration_sec']
temp = temp.sort_values()
temp = temp[temp < s]
plt.figure(figsize=(10, 8))
sns.distplot(temp)
plt.xlabel('Duration(min)', fontsize=20)
plt.ylabel("Frequency", fontsize=15)
plt.xticks(fontsize=12)
plt.title("-Distribution of UFO obervation time-", fontsize=20)
plt.show()

Sample Output:

C:\Users\User\Anaconda3\lib\site-packages\scipy\stats\stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.
  return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval
Graphical analysis of distribution of UFO

Python Code Editor:

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

Previous: Write a Pandas program to check the empty values of UFO (unidentified flying object) Dataframe.
Next: Write a Pandas program to create a graphical analysis of UFO (unidentified flying object) sighted by month.

What is the difficulty level of this exercise?



Follow us on Facebook and Twitter for latest update.

Python: Tips of the Day

Builds a list, using an iterator function and an initial seed value:

Example:

def tips_unfold(fn, seed):
  def fn_generator(val):
    while True: 
      val = fn(val[1])
      if val == False: break
      yield val[0]
  return [i for i in fn_generator([None, seed])]

f = lambda n: False if n > 50 else [-n, n + 10]
print(tips_unfold(f, 10))

Output:

[-10, -20, -30, -40, -50]