Pandas Series: asfreq() function
Convert Pandas TimeSeries to specified frequency
The asfreq() function is used to convert TimeSeries to specified frequency.
Optionally provide filling method to pad/backfill missing values.
Returns the original data conformed to a new index with the specified frequency. resample is more appropriate if an operation, such as summarization, is necessary to represent the data at the new frequency.
Syntax:
Series.asfreq(self, freq, method=None, how=None, normalize=False, fill_value=None)
Parameters:
Name | Description | Type/Default Value | Required / Optional |
---|---|---|---|
freq | DateOffset object, or string | Required | |
method | Method to use for filling holes in reindexed Series (note this does not fill NaNs that already were present):
|
{'backfill'/'bfill', 'pad'/'ffill'} Default Value: None |
Required |
how | For PeriodIndex only, see PeriodIndex.asfreq | {'start', 'end'} Default Value: end |
Required |
normalize | Whether to reset output index to midnight | bool Default Value: False |
Required |
fill_value | Value to use for missing values, applied during upsampling (note this does not fill NaNs that already were present). | scalar | Optional |
Returns: converted - same type as caller
Example - Start by creating a series with 4 one minute timestamps:
Python-Pandas Code:
import numpy as np
import pandas as pd
index = pd.date_range('1/1/2019', periods=4, freq='T')
series = pd.Series([0.0, None, 2.0, 3.0], index=index)
df = pd.DataFrame({'s':series})
df
Output:
s 2019-01-01 00:00:00 0.0 2019-01-01 00:01:00 NaN 2019-01-01 00:02:00 2.0 2019-01-01 00:03:00 3.0
Example - Upsample the series into 20 second bins:
Python-Pandas Code:
import numpy as np
import pandas as pd
index = pd.date_range('1/1/2019', periods=4, freq='T')
series = pd.Series([0.0, None, 2.0, 3.0], index=index)
df = pd.DataFrame({'s':series})
df.asfreq(freq='20S')
Output:
s 2019-01-01 00:00:00 0.0 2019-01-01 00:00:20 NaN 2019-01-01 00:00:40 NaN 2019-01-01 00:01:00 NaN 2019-01-01 00:01:20 NaN 2019-01-01 00:01:40 NaN 2019-01-01 00:02:00 2.0 2019-01-01 00:02:20 NaN 2019-01-01 00:02:40 NaN 2019-01-01 00:03:00 3.0
Example - Upsample again, providing a fill value:
Python-Pandas Code:
import numpy as np
import pandas as pd
index = pd.date_range('1/1/2019', periods=4, freq='T')
series = pd.Series([0.0, None, 2.0, 3.0], index=index)
df = pd.DataFrame({'s':series})
df.asfreq(freq='20S', fill_value=7.0)
Output:
s 2019-01-01 00:00:00 0.0 2019-01-01 00:00:20 7.0 2019-01-01 00:00:40 7.0 2019-01-01 00:01:00 NaN 2019-01-01 00:01:20 7.0 2019-01-01 00:01:40 7.0 2019-01-01 00:02:00 2.0 2019-01-01 00:02:20 7.0 2019-01-01 00:02:40 7.0 2019-01-01 00:03:00 3.0
Example - Upsample again, providing a method:
Python-Pandas Code:
import numpy as np
import pandas as pd
index = pd.date_range('1/1/2019', periods=4, freq='T')
series = pd.Series([0.0, None, 2.0, 3.0], index=index)
df = pd.DataFrame({'s':series})
df.asfreq(freq='20S', method='bfill')
Output:
s 2019-01-01 00:00:00 0.0 2019-01-01 00:00:20 NaN 2019-01-01 00:00:40 NaN 2019-01-01 00:01:00 NaN 2019-01-01 00:01:20 2.0 2019-01-01 00:01:40 2.0 2019-01-01 00:02:00 2.0 2019-01-01 00:02:20 3.0 2019-01-01 00:02:40 3.0 2019-01-01 00:03:00 3.0
Previous: Modify Pandas series in place using non-NA values
Next: Get the last row(s) without any NaNs in Pandas series
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://w3resource.com/pandas/series/series-asfreq.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics