仅从数据框中选择每个月的最后一周 - Python/Pandas

Posted

技术标签:

【中文标题】仅从数据框中选择每个月的最后一周 - Python/Pandas【英文标题】:Selecting the last week of each month only from a data frame - Python/Pandas 【发布时间】:2020-07-18 16:31:40 【问题描述】:

如果我有一个按周日期(2019 年 1 月 7 日、2019 年 1 月 14 日、2019 年 1 月 21 日...等)索引的数据框,Pandas 中有没有一种方法可以有效地仅选择索引中每个月最后一周对应的行?

【问题讨论】:

【参考方案1】:

只需 get 一个月的最后一天 (MonthEnd),然后进行过滤,例如(假设您的 DataFrame 中有 Date 列):

from pandas.tseries.offsets import MonthEnd

df['MonthEnd'] = df['Date'] + MonthEnd(1)
df[ (df['MonthEnd'] - df['Date']).dt.days <= 7 ]

【讨论】:

我认为应该是 .dt.days 而不是 .days,但非常有帮助 - 谢谢! @DalvirMandara 欢迎您!确实是这样,我是凭记忆写的:)

以上是关于仅从数据框中选择每个月的最后一周 - Python/Pandas的主要内容,如果未能解决你的问题,请参考以下文章

EXCEL中如何实现动态显示每个月的数据?

python怎么获得每个月的第一天和最后一天

如何在熊猫数据框中找到每个月的“n”个最大值? [复制]

为每个 ID 选择每个月的最后一条记录

Django按时间序列中的ID过滤和选择每个月的最后一条记录的方法?

我有 8 年的日常数据。我想绘制一周中的每一天、一年中的每周和一年中的每个月的所有值。我怎么做?