Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Challenge: Group by Period? | Working with Dates and Times in pandas
Dealing with Dates and Times in Python

book
Challenge: Group by Period?

Previously, across other courses and chapters, you used to group observations by some columns. But can we do it with some time-series data? For example, can we summarize data by each week presented in dataset? Sounds like a complicated task.

Actually, pandas can handle even with that. There is .resample function available to group by different periods. Let's consider the structure of this function.

df.resample(rule, axis = 0, closed = None, label = None, convention = 'start', kind = None, loffset = None, base = None, on = None, level = None, origin = 'start_day', offset = None)
1
df.resample(rule, axis = 0, closed = None, label = None, convention = 'start', kind = None, loffset = None, base = None, on = None, level = None, origin = 'start_day', offset = None)
copy

The most important and the only one required argument is rule - the offset string or object representing target conversion. Easier, it's the period we want to divide our data by. There is a list of offset aliases used for resampling. You can find them in the table below the task.

Oppgave

Swipe to start coding

  1. Set pickup_datetime column of df dataframe as an index of df.
  2. Calculate the number of trips each month available in dataset.

Løsning

# Load libraries
import pandas as pd
from datetime import timedelta

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

# Task 1 - set pickup_datetime as index for dataframe
df = df.set_index(pd.DatetimeIndex(df['pickup_datetime']))

# Task 2 - calculate number of trips in each month available in dataset
print(df.resample('M').size())
AliasMeaning
BBusiness day frequency
CCustom business day frequency
DCalendar day frequency
WWeekly frequency
MMonth end frequency
QQuarter end frequency

There are many more aliases available. You can read about it in documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#offset-aliases (Offset aliases)

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 10
# Load libraries
import pandas as pd
from datetime import timedelta

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

# Task 1 - set pickup_datetime as index for dataframe
df = df.___(pd.DatetimeIndex(df['___']))

# Task 2 - calculate number of trips in each month available in dataset
print(df.___('___').___())

Spør AI

expand
ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

some-alt