考虑这个例子:
import pandas as pd
import numpy as np
frame = pd.DataFrame(np.random.randn(24, 4),
index=pd.period_range('1-2000', '12-2001', freq='M'),
columns=['Colorado', 'Texas', 'New York', 'Ohio'])
frame.resample('Q', how='mean').index
这样可以正常工作,生成PeriodIndex
,
PeriodIndex(['2000Q1', '2000Q2', '2000Q3', '2000Q4', '2001Q1', '2001Q2',
'2001Q3', '2001Q4'],
dtype='int64', freq='Q-DEC')
但是,当我想使用多个基频重采样时,
frame.resample('2Q', how='mean').index
我得到DatetimeIndex
:
DatetimeIndex(['2000-03-31', '2000-09-30', '2001-03-31', '2001-09-30',
'2002-03-31'],
dtype='datetime64[ns]', freq='2Q-DEC')
为什么在这种情况下使用Periods重新采样会转换为pandas中的DatetimeIndex?这种行为是期待的吗?难道我做错了什么? 这很不方便因为我必须写
df = frame.resample('2Q', how='mean')
df.index = df.index.to_period('2Q')
df.index
获取
PeriodIndex(['2000Q1', '2000Q3', '2001Q1', '2001Q3', '2002Q1'],
dtype='int64', freq='2Q-DEC')