选择和切片作为 PeriodIndex 的列

D. *_*ank 6 python pandas

我有一个 DataFrame,其中的列是按月的 PeriodIndex,如下所示:

df = pd.DataFrame(np.random.randn(3,4), index = np.arange(3), columns = pd.period_range('2015-01', freq = 'M', periods = 4))


     2015-01     2015-02    2015-03      2015-04
0   -1.459943   -1.572013   2.977714    -0.067696
1   -1.545259   -0.570757   0.133756    -1.231192
2    0.498197   -0.555625   0.174545     0.371475
Run Code Online (Sandbox Code Playgroud)

我可以选择列的子集,如下所示:

testdf[[pd.Period('2015-01'),pd.Period('2015-03')]]

     2015-01    2015-03
0   -1.459943   2.977714
1   -1.545259   0.133756
2    0.498197   0.174545
Run Code Online (Sandbox Code Playgroud)

但是,当谈到切片以获取例如从“2015-01”到“2015-03”的所有月份时,我对所需的语法感到困惑。我已经尝试了各种迭代,但没有运气。

例如:

df[pd.Period('2015-01'):pd.Period('2015-03')]
df['2015-01':'2015-03']
Run Code Online (Sandbox Code Playgroud)

所有这些都不起作用。

我怎样才能切片这个 PeriodIndex?

EdC*_*ica 5

使用.ix通过一个片用于列选择ARG:

In [9]:
df.ix[:,pd.Period('2015-01'):pd.Period('2015-03')]

Out[9]:
    2015-01   2015-02   2015-03
0  0.046028 -0.298445  0.908185
1 -0.955049 -1.420290  1.632564
2  0.848906  0.089553  0.551265
Run Code Online (Sandbox Code Playgroud)