【问题标题】:Pandas downsampling more time intervalls?熊猫下采样更多时间间隔?
【发布时间】:2021-03-24 23:16:01
【问题描述】:

我正在对数据进行一些重新采样,我想知道为什么将 1 分钟的数据重新采样为 5 分钟的数据会比我的原始数据集创建更多的时间间隔? 另外,为什么在 2018 年 12 月 11 日(比原始数据集长 11 天!)之前重新采样?

1 分钟数据:

重采样到 5 分钟间隔的结果:

这就是我进行重采样的方式:

df1.loc[:,'qKfz_gesamt'].resample('5min').mean()

【问题讨论】:

  • 如果检查 df1['qKfz_gesamt'].resample('5min').mean()df1['qKfz_gesamt'].resample('5min').mean().dropna() 得到相同的长度?
  • beginning and ends are still "longer" - 可以解释更多吗?
  • 也有可能在日期时间中将几个月与几天交换?所以12-11-2018 解析为像 12 月,但应该是 11 月?
  • 需要按最大值过滤日期时间,例如 df1 = df1.loc[:'2018-11-30', :] ?
  • 是的...看起来像!非常感谢您的帮助:)

标签: python pandas time-series timestamp


【解决方案1】:

我想知道为什么将 1 分钟的数据重采样为 5 分钟的数据会比我的原始数据集创建更多的时间间隔?

问题是如果原始 pandas 中没有连续的值创建连续的 5 分钟间隔并且创建不存在的值 NaNs:

df1 = pd.DataFrame({'qKfz_gesamt': range(4)}, 
                   index=pd.to_datetime(['2018-11-25 00:00:00','2018-11-25 00:01:00',
                                         '2018-11-25 00:02:00','2018-11-25 00:15:00']))  
print (df1)
                     qKfz_gesamt
2018-11-25 00:00:00            0
2018-11-25 00:01:00            1
2018-11-25 00:02:00            2
2018-11-25 00:15:00            3

print (df1['qKfz_gesamt'].resample('5min').mean())
2018-11-25 00:00:00    1.0
2018-11-25 00:05:00    NaN
2018-11-25 00:10:00    NaN
2018-11-25 00:15:00    3.0
Freq: 5T, Name: qKfz_gesamt, dtype: float64

print (df1['qKfz_gesamt'].resample('5min').mean().dropna())
2018-11-25 00:00:00    1.0
2018-11-25 00:15:00    3.0
Name: qKfz_gesamt, dtype: float64

为什么在 2018 年 12 月 11 日(比原始数据集长 11 天!)之前重新采样?

您需要按索引的最大值过滤:

rng = pd.date_range('2018-11-25', periods=10)
df1 = pd.DataFrame({'a': range(10)}, index=rng)  
print (df1)
            a
2018-11-25  0
2018-11-26  1
2018-11-27  2
2018-11-28  3
2018-11-29  4
2018-11-30  5
2018-12-01  6
2018-12-02  7
2018-12-03  8
2018-12-04  9

df1 = df1.loc[:'2018-11-30']
print (df1)
            a
2018-11-25  0
2018-11-26  1
2018-11-27  2
2018-11-28  3
2018-11-29  4
2018-11-30  5

或者:

df1 = df1.loc[df1.index <= '2018-11-30']
print (df1)
            a
2018-11-25  0
2018-11-26  1
2018-11-27  2
2018-11-28  3
2018-11-29  4
2018-11-30  5

【讨论】:

    猜你喜欢
    • 2017-02-20
    • 2021-07-03
    • 2013-03-03
    • 1970-01-01
    • 2020-01-02
    • 2014-11-17
    • 2021-03-11
    • 1970-01-01
    • 2019-10-09
    相关资源
    最近更新 更多