每周重新采样日期

时间:2019-09-03 23:12:04

标签: python pandas

嗨,我正尝试每周对我的日期时间索引数据进行重新采样。为此,我使用了:

data.resample('W').last()

但是,出现的日期确实是每周采样的,但是有时这些日期是原始数据中不存在的日期。是否可以强制重新采样以便仅获取原始数据中存在的日期?

1 个答案:

答案 0 :(得分:0)

如果添加与索引相同的新列date,则df.resample('W').last()还将返回每个重采样组中的最后一个日期。您可以将这些日期设置为新索引。例如,

import numpy as np
import pandas as pd
np.random.seed(2019)

N = 40
df = pd.DataFrame(np.random.randint(10, size=(N,2)), columns=list('AB'), index=pd.date_range('2000-1-1', periods=N, freq='B'))
df['date'] = df.index
result = df.resample('W').last()
#             A  B       date
# 2000-01-09  7  8 2000-01-07
# 2000-01-16  4  0 2000-01-14
# 2000-01-23  3  5 2000-01-21
# 2000-01-30  3  7 2000-01-28
# 2000-02-06  6  1 2000-02-04
# 2000-02-13  5  5 2000-02-11
# 2000-02-20  2  7 2000-02-18
# 2000-02-27  9  0 2000-02-25

result = result.set_index('date')

收益

In [154]: result
Out[154]: 
            A  B
date            
2000-01-07  7  8
2000-01-14  4  0
2000-01-21  3  5
2000-01-28  3  7
2000-02-04  6  1
2000-02-11  5  5
2000-02-18  2  7
2000-02-25  9  0