Learn practical skills, build real-world projects, and advance your career
4 years ago

Analysis of Digitraffic Agent Estimates

Preparing the Data

#!pip install jovian

import jovian
jovian.commit(filename="Digitraffic_error_estimates_statistical_analyses.ipynb",files=["all_estimates.csv","arima_utils.py"],privacy="private",environment="pip")
[jovian] Attempting to save notebook..
from arima_utils import *
import pandas as pd
import functools
import numpy as np
def conjunction(*conditions):
    return functools.reduce(np.logical_and, conditions)
import seaborn as sns
import os
pd.set_option('display.max_rows', 500)
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 1000)

all_estimates = pd.read_csv("all_estimates.csv").drop("Unnamed: 0",axis=1)
df = all_estimates
exc = 0
try:
    df.etd0 = pd.to_datetime(df.etd0)
except:
    print("Couldn't convert etd0 to datetime")
    try:
        df["etd0"] = df["etd0"].astype('datetime64[ns]')
    except:
        print("Cannot convert etd0 to timestamp 2!")
        exc = 3
try:
    df.ata0 = pd.to_datetime(df.ata0)
except:
    print("Couldn't convert ata0 to datetime")
    try:
        df["ata0"] = df["ata0"].astype('datetime64[ns]')
    except:
        print("Cannot convert ata0 to timestamp 2!")
        exc = 3

try:
    df.atd0 = pd.to_datetime(df.atd0)
except:
    print("Couldn't convert atd0 to datetime")
    try:
        df["atd0"] = df["atd0"].astype('datetime64[ns]')
    except:
        exc = 2

if exc != 1:
    df.insert(0, 'true_minus_agent', (df.atd0 - df.etd0) / pd.Timedelta(
        '1 hour'))  # pd.to_datetime(df.arrival_date).dt.date





cond1 = df.etd0.dt.year > 2018
cond2 = df.true_minus_agent < 10000
#
df = df[conjunction(cond1,cond2)]
df2 = df.set_index("etd0",inplace=False)




#sns.lineplot(x="etd0",y="moving_avg2",data=df,ci=None)
Couldn't convert ata0 to datetime Cannot convert ata0 to timestamp 2!

Visualizations

Trying Combined Plot with Double Y Axis : Too complicated?


fig, ax = plt.subplots(figsize=(18,14))
sns.scatterplot(x="etd0",y="true_minus_agent",data=df,ci=None,hue="nationality",ax=ax,alpha=0.7)
ax2 = ax.twinx()
sns.lineplot(x="etd0",y="true_minus_agent",data=df,ci=None,hue="vesseltypecode",ax=ax2,alpha=0.7)
plt.show()


Notebook Image