微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果单行的条件为真,则标记整个组

我有一个数据框,其中包含日期和公共假期

Date    WeekNum Public_Holiday
1/1/2015    1   1
2/1/2015    1   0
3/1/2015    1   0
4/1/2015    1   0
5/1/2015    1   0
6/1/2015    1   0
7/1/2015    1   0
8/1/2015    2   0
9/1/2015    2   0
10/1/2015   2   0
11/1/2015   2   0
12/1/2015   2   0
13/1/2015   2   0

我必须创建一个名为Public_Holiday_Week的条件列,如果该特定周有公共假日,则该列应返回1

我希望看到这样的输出

Date    WeekNum Public_Holiday  Public_Holiday_Week
1/1/2015    1   1               1
2/1/2015    1   0               1
3/1/2015    1   0               1
4/1/2015    1   0               1
5/1/2015    1   0               1
6/1/2015    1   0               1
7/1/2015    1   0               1
8/1/2015    2   0               0
9/1/2015    2   0               0
10/1/2015   2   0               0
11/1/2015   2   0               0
12/1/2015   2   0               0
13/1/2015   2   0               0

我尝试使用np.where

df['Public_Holiday_Week'] = np.where(df['Public_Holiday']==1,1,0)

但是,如果不是公众假期,它适用于本周其他日子的0.

我必须在这里申请滚动吗?感谢您的帮助

解决方法:

使用resample并完全跳过WeekNum列的使用.

df.assign(
    Public_Holiday_Week=
    df.resample('W-Wed', on='Date').Public_Holiday.transform('max')
)

         Date  WeekNum  Public_Holiday  Public_Holiday_Week
0  2015-01-01        1               1                    1
1  2015-01-02        1               0                    1
2  2015-01-03        1               0                    1
3  2015-01-04        1               0                    1
4  2015-01-05        1               0                    1
5  2015-01-06        1               0                    1
6  2015-01-07        1               0                    1
7  2015-01-08        2               0                    0
8  2015-01-09        2               0                    0
9  2015-01-10        2               0                    0
10 2015-01-11        2               0                    0
11 2015-01-12        2               0                    0
12 2015-01-13        2               0                    0

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐