Python 使用'从每日重新采样到每月重新采样;月末减去t天';大熊猫的补偿

Python 使用'从每日重新采样到每月重新采样;月末减去t天';大熊猫的补偿,python,pandas,dataframe,Python,Pandas,Dataframe,我有熊猫数据框中的每日timeseries数据。我需要使用标准月末频率的不同偏移量,将其重新采样到每月 dates = pd.date_range('2016-09-01', '2017-01-10') df = pd.DataFrame(data=[x for x in range(len(dates))],index=dates,columns=['MyData']) 我可以使用月末频率获得月度系列: df_monthly = df.resample('M').last() df_mon

我有熊猫数据框中的每日timeseries数据。我需要使用标准月末频率的不同偏移量,将其重新采样到每月

dates = pd.date_range('2016-09-01', '2017-01-10')
df = pd.DataFrame(data=[x for x in range(len(dates))],index=dates,columns=['MyData'])
我可以使用月末频率获得月度系列:

df_monthly = df.resample('M').last()

df_monthly
Out[78]: 
            MyData
2016-09-30      29
2016-10-31      60
2016-11-30      90
2016-12-31     121
2017-01-31     131
如果月末='M',我希望每个月都有类似的切片 “M-15”、“M-2”、“M-1”、“M”、“M+1”、“M+2”、“M+15”。 最终,我计划将它们组合成一个列名为“M+T”的数据框架


在pd.DataFrame.resample()或pd.DataFrame.asfreq()中是否有一种简单的方法可以做到这一点?

根据您在这里询问的几种方法,这是如何做到的

import pandas as pd
dates = pd.date_range('2016-09-01', '2017-01-10')
df = pd.DataFrame(data=[x for x in range(len(dates))],index=dates,columns=['MyData'])

df_monthly_m1 = df.shift(-1).resample('M').last()
df_monthly_m1

            MyData
2016-09-30    30.0
2016-10-31    61.0
2016-11-30    91.0
2016-12-31   122.0
2017-01-31   131.0

df_monthly_p1 = df.shift(1).resample('M').last()
df_monthly_p1

            MyData
2016-09-30    28.0
2016-10-31    59.0
2016-11-30    89.0
2016-12-31   120.0
2017-01-31   130.0

对不起,我不明白这个问题。你想要月饼之类的吗?例如
M-2
是前两个月还是前两天?所有输出数据都是1M频率片。其中一个系列将于本月底推出。另一个系列是每月的第一个(MyData=[30,61,91122])。下一个系列是每个月的第二个(MyData=[31,62,92123])。我还希望月底减去1天的系列(MyData=[28,59,89120130],index=2016-09-29,2016-10-30等)如此简单,谢谢!我所寻找的标签是另一种方式:df_monthly_p1指的是每个月第一个月的数据,涉及-1的移位