Pandas 日期索引 : select the first element of each month

标签 pandas dataframe

我有一个以日期为索引的 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

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

            B group
index                  
2018-08-19     True
2018-09-15     False
2019-04-28     True
2019-06-01     False

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

最佳答案

通过 DatetimeIndex.to_periodDatetimeIndex 转换为月份然后按 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

关于 Pandas 日期索引 : select the first element of each month,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59551804/

相关文章:

python - 将标量值分配给空 DataFrame 似乎没有做任何事情

python - 通过左连接 SQL 和 Pandas 合并数据帧

python - 使用特定列对数据框进行子类化

python - 如何将行中的列值更新为 pandas 数据框中另一列中的特定值?

r - 删除数据帧中的每第n行

python - 对 plotly 在线/离线/袖扣和不同版本感到困惑

python - 使用索引作为键从数据框创建字典

python - 使用 MongoDB 列表中的日期字段作为 Pandas DataFrame 中的 DatetimeIndex

r - 获取每一行在数据框中出现次数最多的值

python - 在 pyspark DataFrame 中创建特定类型的空数组列