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()
方法的语法和参数,通过将该方法应用于数据帧,我们通过将时间序列转换为指定频率、对频率进行上采样并填充缺失值来解决示例。