【发布时间】:2020-12-05 06:41:57
【问题描述】:
我正在创建一个带有随机日期和随机整数值的 pandas DataFrame,我想按月重新采样并计算整数的平均值。这可以通过以下代码完成:
def random_dates(start='2018-01-01', end='2019-01-01', n=300):
start_u = start.value//10**9
end_u = end.value//10**9
return pd.to_datetime(np.random.randint(start_u, end_u, n), unit='s')
start = pd.to_datetime('2018-01-01')
end = pd.to_datetime('2019-01-01')
dates = random_dates(start, end)
ints = np.random.randint(100, size=300)
df = pd.DataFrame({'Month': dates, 'Integers': ints})
print(df.resample('M', on='Month').mean())
问题是重新采样的月份总是从第一天开始,我希望所有月份都从第 15 天开始。我使用的是 pandas 1.1.4,我尝试过使用 origin='15/01/2018' 或 offset='15',但都没有它们适用于'M' resample 规则(当我使用30D 时它们确实有效,但它没有用)。我也尝试过使用'2SM',但它也不起作用。
所以我的问题是,是否有办法更改重采样规则,或者我必须在数据中添加偏移量?
【问题讨论】:
-
您希望所有月份都从第 15 天开始还是仅从第 1 个月开始?
-
@kate-melnykova,我希望从第 15 天开始的所有月份。我在我的问题上对其进行了编辑以使其更加清晰。谢谢。