我对 .resample() 方法的使用有点卡住了。我正在使用 DateFrame,其中索引是 YYYY-MM-DD 格式的 TimeDate 对象,并且我有一排与几个城市的属性(property)成本相对应的列,如下所示:

State       California  Illinois    Pennsylvania    Arizona
RegionName  Los Angeles Chicago     Philadelphia    Phoenix
1/1/2000    204400      136800      52700           111000
2/1/2000    207000      138300      53100           111700
3/1/2000    209800      140100      53200           112800
4/1/2000    212300      141900      53400           113700
5/1/2000    214500      143700      53700           114300
6/1/2000    216600      145300      53800           115100
7/1/2000    219000      146700      53800           115600
8/1/2000    221100      147900      54100           115900
9/1/2000    222800      149000      54500           116500

当我对其应用 .resample() 方法将显示转换为季度 View 时,我得到的数据排列如下:
hd = hd.resample('Q').mean()


State       New York    California  Illinois    Pennsylvania    Arizona
RegionName  New York    Los Angeles Chicago     Philadelphia    Phoenix
3/31/2000   NaN         207066.6667 138400      53000           111833.3333
6/30/2000   NaN         214466.6667 143633.3333 53633.33333     114366.6667
9/30/2000   NaN         220966.6667 147866.6667 54133.33333     116000

但是,我需要新创建的索引上的标签以类似于“2000q1”样式的格式显示,而不是本季度的最后(或第一天)。
我一直在 Pandas 文档中的 .resample() 方法页面,但在我的生活中,我无法弄清楚如何应用这样的自定义标签。
有人可以帮我吗?

亲切的问候,
格力姆

最佳答案

我认为你需要 to_period strftime :

#hd.index = pd.to_datetime(hd.index)
hd = hd.resample('Q').mean()
hd.index = hd.index.to_period('q').strftime('%Yq%q')
print (hd)
State       California Illinois Pennsylvania Arizona
RegionName Los Angeles  Chicago Philadelphia Phoenix
2000q1          207066   138400        53000  111833
2000q2          214466   143633        53633  114366
2000q3          220966   147866        54133  116000

关于python - Pandas .resample() 方法 - 自定义标签?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43817627/

10-11 17:45