Pandas 数据帧asfreq()方法

原文:https://www.studytonight.com/pandas/pandas-dataframe-asfreq-method

在本教程中,我们将学习 PandasDataFrame.asfreq()方法。它将TimeSeries转换为specified frequency.它提供了一种填充方法来填充或回填缺失的值。将此方法应用于数据帧后,它将返回转换为指定频率的对象。在本教程中,我们将时间序列转换为指定的频率,对频率进行上采样,并填写缺失的值。

句法

使用此方法所需的语法如下

DataFrame.asfreq(freq, method=None, how=None, normalize=False, fill_value=None)

因素

freq: 表示日期偏移量或字符串,即频率日期偏移量或字符串。

方法:包括【回填】/【填充】/【填充】/【填充】,默认值为无。用于填充重新索引系列中的孔的方法(注意,这不会填充已经存在的孔):

pad”或“ffill”:将最后一个有效观察值向前传播到下一个有效观察值

“回填”或“填充”:使用 NEXT 有效观察进行填充。

如何:包括‘开始’、‘结束’,默认值为结束。

归一化:表示布尔(真或假),默认值为假。是否将输出索引重置为午夜。

fill_value: 它表示一个标量(可选),用于在上采样期间应用的缺失值。

示例 1:将时间序列转换为指定的频率

我们可以使用DataFrame.asfreq()方法将时间序列转换为不同的指定频率。

import pandas as pd
index = pd.date_range('1/1/2021', periods=4, freq='T')
series = pd.Series([0.0, None, 2.0, 3.0], index=index)
df = pd.DataFrame({'Time':series})
print(df)
print("converting to different frequency")
print(df.asfreq(freq='H'))

一旦我们运行程序,我们将得到以下结果。

时间 2021-01-01 00:00:00 0.0 2021-01-01 00:01:00 NaN 2021-01-01 00:02:00 2.0 2021-01-01 00:03:00 3.0 转换为不同频率 时间 2021-01-01 0.0

示例 2:使用DataFrame.asfreq()方法对时间序列进行上采样

下面的例子表明,我们可以对时间序列的频率进行上采样。

import pandas as pd
index = pd.date_range('1/1/2021', periods=4, freq='T')
series = pd.Series([0.0, None, 2.0, 3.0], index=index)
df = pd.DataFrame({'Time':series})
print(df)
print("-----------upsample Timeseries-----------")
print(df.asfreq(freq='50s'))

一旦我们运行程序,我们将得到以下结果。

时间 2021-01-01 00:00:00 0.0 2021-01-01 00:01:00 NaN 2021-01-01 00:02:00 2.0 2021-01-01 00:03:00 3.0 -up sample Timeseries- 时间 2021-01-01 00

示例 3:使用DataFrame.asfreq()方法对时间序列进行上采样并填充缺失值

这个例子类似于前面的例子,在这个例子中,我们用“50”对时间序列进行上采样,并填充缺失的值。

import pandas as pd
index = pd.date_range('1/1/2021', periods=4, freq='T')
series = pd.Series([0.0, None, None, 3.0], index=index)
df = pd.DataFrame({'Time':series})
print(df)
print("-----------upsample Timeseries and fill value-----------")
print(df.asfreq(freq='50s',fill_value=9.0))

一旦我们运行程序,我们将得到以下结果。

时间 2021-01-01 00:00:00 0.0 2021-01-01 00:01:00 NaN 2021-01-01 00:02:00 NaN 2021-01-00:03:00 3.0 -向上采样时间序列和填充值- 时间 2021-01-01

示例 4:使用DataFrame.asfreq()方法对时间序列进行上采样并回填缺失值

在本例中,DataFrame.asfreq()方法对时间序列进行上采样, back fill对缺失值进行上采样。

import pandas as pd
index = pd.date_range('1/1/2021', periods=4, freq='T')
series = pd.Series([0.0, None, None, 3.0], index=index)
df = pd.DataFrame({'Time':series})
print("-----------upsample Timeseries-----------")
print(df.asfreq(freq='70s'))
print("-----------backward fill-------")
print(df.asfreq(freq='70s',method='bfill'))

一旦我们运行程序,我们将得到以下结果。

-上采样时间序列- 时间 2021-01-01 00:00:00 0.0 2021-01-01 00:01:10 NaN 2021-01-01 00:02:20 NaN -后补- 时间 2021-01-01 00:00:00 0.0 2021-021

结论

在本教程中,我们学习了 PythonPandasDataFrame.asfreq()方法。我们学习并理解了DataFrame.asfreq()方法的语法和参数,通过将该方法应用于数据帧,我们通过将时间序列转换为指定频率、对频率进行上采样并填充缺失值来解决示例。