我有一个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格式的索引来完成此操作?
答案 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