📜  Python|熊猫 dataframe.asfreq()

📅  最后修改于: 2022-05-13 01:55:18.337000             🧑  作者: Mango

Python|熊猫 dataframe.asfreq()

Python是一种用于进行数据分析的出色语言,主要是因为以数据为中心的Python包的奇妙生态系统。 Pandas就是其中之一,它使导入和分析数据变得更加容易。

Pandas dataframe.asfreq()函数用于将 TimeSeries 转换为指定的频率。此函数可选地提供填充方法来填充/回填缺失值。它以指定的频率返回符合新索引的原始数据。如果需要进行汇总等操作来以新频率表示数据,则重新采样更合适。

示例 #1:将时间序列数据从每周频率解采样到每日频率

# importing pandas as pd
import pandas as pd
  
# Creating a date_time form index 
index_values = (pd.date_range('1/1/2000',
                   periods=3,freq='W'))
  
# Creating a series using 'index_values'
# Notice, one of the series value is nan value
series = (pd.Series([0.0,None,2.0],
              index=index_values))
  
# Creating dataframe using the series
df=pd.DataFrame({"Col_1":series})
  
# Print the Dataframe
df

现在将这个每周采样数据解采样为每日采样数据。默认情况下,新创建的 bin 将具有 nan 值。因此,使用fill_value参数用提供的值填充所有新创建的 bin。

# unsampling and providing a fill value = 9.0
df.asfreq(freq ='D', fill_value = 9.0)

输出 :

注意:这不会填充采样前已经存在的 NaN。

示例 #2:将一分钟时间戳数据解采样到 30 秒的 bin 中。首先创建一个具有 5 个一分钟时间戳的系列。

# importing pandas as pd
import pandas as pd
  
# Creating a date_time form index 
index_values = (pd.date_range('1/1/2000',
                     periods=5,freq='T'))
  
# Creating a series using 'index_values'
# Notice, one of the series value is nan value
series = (pd.Series([0.0,1.0,None,3.0,4.0],
                      index=index_values))
  
# Creating dataframe using the series
df=pd.DataFrame({"Col_1":series})
  
# Print the Dataframe
df

现在取消采样到 30 秒的 bin 并提供 100.0 的 fill_value

# unsampling and providing a fill value of 100.0
df.asfreq(freq ='30S', fill_value = 100.0)

输出 :

注意:将不会填充非采样前存在的 Nan 值