在python中使用yyyymm中的日期切换数据框索引

时间:2017-11-04 18:06:36

标签: python pandas dataframe indexing

我有一个df:

          ABC   XYZ
192607   1.00    2.00 
192701   3.46    6.93 
192803   6.44    12.89 

如何对特定年份的数据进行切片,比如1927年和1928年。我正在尝试以下代码:

df['1927':]

但它不起作用?如何通过 NOT 转换yyyy-mm-dd格式的索引来完成此操作?

1 个答案:

答案 0 :(得分:0)

整数 dtype索引的选项:

In [18]: df.loc[(df.index//100).isin([1927,1928])]
Out[18]:
         ABC    XYZ
192701  3.46   6.93
192803  6.44  12.89

In [27]: df.loc[192701:192812]
Out[27]:
         ABC    XYZ
192701  3.46   6.93
192803  6.44  12.89

In [29]: df.query("192701 <= index <= 192812")
Out[29]:
         ABC    XYZ
192701  3.46   6.93
192803  6.44  12.89

字符串的索引选项 dtype:

In [21]: df.loc['1927' : '1929']
Out[21]:
         ABC    XYZ
192701  3.46   6.93
192803  6.44  12.89

In [23]: df.loc[df.index.str[:4].isin(['1927','1928'])]
Out[23]:
         ABC    XYZ
192701  3.46   6.93
192803  6.44  12.89

In [24]: df.loc[df.index.str.match('192[78]\d{2}')]
Out[24]:
         ABC    XYZ
192701  3.46   6.93
192803  6.44  12.89

In [31]: df.query("'192701' <= index <= '192812'")
Out[31]:
         ABC    XYZ
192701  3.46   6.93
192803  6.44  12.89