Select Python 数据框中每第 n 个元素的第 n 行

Select nth rows every nth element in Python dataframe

我正在读取一个 .csv 文件,其中日期作为索引,状态作为列。

像这样:

日期从 1950 年 1 月到 2022 年 4 月,我想改变数据框的切片,例如我想获取所有的一月和二月(从 1950 年到 2022 年),所以它看起来像这样

我知道我可以用 data.iloc[0::12] select 每个第 n 个元素,所以我尝试做类似 data.iloc[(0:1)::12] 的事情,但它不起作用。

如何按照我想要的方式切片?

提前致谢

您可以为此使用 startswith() 选项

df = df[(df['Date'].str.startswith('Ene')) | (df['Date'].str.startswith('Feb'))]

似乎iloc支持lambda函数。所以如果你想要你的方式:

df.iloc[lambda x:(x.index % 12).isin([0,1])]

但是,对于您的情况,使用 str.startswith 似乎更好

df[df.index.str.startswith('Ene') | df.index.str.startswith('Feb')]