w3resource

Resampling Time Series data with Custom functions


Pandas Resampling and Frequency Conversion: Exercise-8 with Solution


Write a Pandas program to resample Time Series data with custom functions.

Sample Solution:

Python Code :

# Import necessary libraries
import pandas as pd
import numpy as np

# Create a time series data with hourly frequency
date_rng = pd.date_range(start='2023-01-01', end='2023-01-05', freq='H')
ts = pd.Series(np.random.randn(len(date_rng)), index=date_rng)

# Define a custom function for resampling
def custom_resample(array):
    return np.sum(array) / len(array)

# Resample the time series to daily frequency using the custom function
ts_custom = ts.resample('D').apply(custom_resample)

# Display the resampled time series
print(ts_custom)

Output:

2023-01-01    0.147705
2023-01-02   -0.022656
2023-01-03   -0.131713
2023-01-04    0.053327
2023-01-05    0.562042
Freq: D, dtype: float64

Explanation:

  • Import Pandas and NumPy libraries.
  • Create a date range with hourly frequency.
  • Generate a random time series data with the created date range.
  • Define a custom function for resampling.
  • Resample the time series data to daily frequency using the custom function.
  • Print the resampled time series data.

Python Code Editor:

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

Previous: Interpolating Missing values after Resampling.
Next: Resampling Time Series data to Quarterly Frequency.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.