Pandas日期索引:选择每个月的第一个元素

Pey*_*man 4 dataframe pandas

我有一个以日期作为索引的 pandas 数据框。例如:

            B group
index                  
2018-08-19     True
2018-08-20     True
2018-09-15     False
2018-09-15     False
2019-04-28     True
2019-06-01     False
2019-06-08     True
Run Code Online (Sandbox Code Playgroud)

我只想选择每个可用月份的第一个元素。例如,在这个 DF 中我想选择这些:

            B group
index                  
2018-08-19     True
2018-09-15     False
2019-04-28     True
2019-06-01     False
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么做。所以我来这里问问。提前致谢。

jez*_*ael 6

转换DatetimeIndex为月份周期 by DatetimeIndex.to_period,然后Series.duplicated使用倒置掩码 和进行过滤boolean indexing

df = df[~df.index.to_period('m').duplicated()]
print (df)
            B group
2018-08-19     True
2018-09-15    False
2019-04-28     True
2019-06-01    False
Run Code Online (Sandbox Code Playgroud)