Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Challenge: Negative Trip Duration | Working with Dates and Times in pandas
Dealing with Dates and Times in Python

book
Challenge: Negative Trip Duration

Well, in the last chapter you might notice that for the first 10 rows all the trips started before 13 hours (1 p.m.), and ended close to 00 hours. What if it's just AM/PM missing? Let's try to check it.

How can it be checked? Well, in our dataframe we also have trip_duration column representing the trip duration in seconds. What if we just add this duration to pickup_datetime and compare it with dropoff_datetime?

Please note, that you will need to use timedelta objects in this task since you want to 'shift' your datetime object for a certain time. To convert column to timedelta type use pd.to_timedelta() function with two arguments: column you want to convert, and unit - dimension used ('S' for seconds, 'm' for minutes, and so on).

Compito

Swipe to start coding

  1. Convert trip_duration column into timedelta type. Do not forget that trip_duration measures in seconds.
  2. Create new column dropoff_calculated as the result of adding pickup_datetime and trip_duration.
  3. Print first 10 rows for updated dataframe.

Please, do not change column names in square brackets.

Soluzione

# Load libraries
import pandas as pd
from datetime import timedelta

# Loading dataset and creating duration column
url = 'https://drive.google.com/uc?id=1KoZJyLO791MqW-JICYukrApH4qfiniGG'
df = pd.read_csv(url, parse_dates = ['pickup_datetime', 'dropoff_datetime'])
df["duration"] = pd.to_timedelta(df["duration"])

# Task 1 - convert trip duration into timedelta type
df["trip_duration"] = pd.to_timedelta(df["trip_duration"], unit = "S")

# Task 2 - create new_column dropoff_calculated
df["dropoff_calculated"] = df["pickup_datetime"] + df["trip_duration"]

# Task 3 - print first 10 rows with negative durations
print(df[df["duration"] < timedelta(0)][["pickup_datetime", "dropoff_datetime", "dropoff_calculated"]].head(10))

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 5
single

single

# Load libraries
import pandas as pd
from datetime import timedelta

# Loading dataset and creating duration column
url = 'https://drive.google.com/uc?id=1KoZJyLO791MqW-JICYukrApH4qfiniGG'
df = pd.read_csv(url, parse_dates = ['pickup_datetime', 'dropoff_datetime'])
df["duration"] = pd.to_timedelta(df["duration"])

# Task 1 - convert trip duration into timedelta type
df["trip_duration"] = pd.___(df["___"], unit = "___")

# Task 2 - create new_column dropoff_calculated
df["dropoff_calculated"] = df["___"] ___ df["___"]

# Task 3 - print first 10 rows with negative durations
print(df[df["duration"] < ___(___)][["pickup_datetime", "dropoff_datetime", "dropoff_calculated"]].___(___))

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

some-alt