首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >根据自定义日长定义对连续周末进行分组

根据自定义日长定义对连续周末进行分组
EN

Stack Overflow用户
提问于 2019-04-22 15:45:37
回答 1查看 25关注 0票数 1

我有一个熊猫数据框架,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dateInfo[['HE', 'Date']].ix[1:4]
                     HE       Date
DateTime                          
2001-01-01 02:00:00   2 2001-01-01
2001-01-01 03:00:00   3 2001-01-01
2001-01-01 04:00:00   4 2001-01-01

Dates的范围从2001年到2031年。有没有办法创建一个列StartDate,其中日期定义在今天上午11点到明天上午10点之间。除非是周末,因为开始时间是星期六上午11点,到星期二上午10点

我的输出将具有以下形式(我忽略了输出中的HEDate列):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DateTime        StartDate
4/3/2019 11:00  4/3/2019
4/3/2019 12:00  4/3/2019
4/4/2019 7:00   4/3/2019
4/4/2019 10:00  4/3/2019
4/4/2019 11:00  4/4/2019
4/5/2019 10:00  4/4/2019
4/6/2019 11:00  4/6/2019
4/6/2019 12:00  4/6/2019
4/8/2019 23:00  4/6/2019
4/9/2019 9:00   4/6/2019
4/9/2019 10:00  4/6/2019
4/9/2019 11:00  4/9/2019

我根本不知道怎么做,我觉得即使是for loop也会涉及到很多if then语句。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-22 16:22:37

下面是我的多步骤方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hours_shift = (df.DateTime.dt.hour <= 10)
df['date'] = pd.to_datetime(df.DateTime.dt.date)
df['day'] = df.date.dt.dayofweek

# shift Tuesdays
tues_shift = (df.day == 1) & hours_shift
df.loc[tues_shift, 'date'] -= pd.Timedelta(days=3)

# shift Mondays
mon_shift = (df.day==0)
df.loc[mon_shift, 'date'] -= pd.Timedelta(days=2)

# shift Sundays
sun_shift = (df.day==6)
df.loc[sun_shift, 'date'] -= pd.Timedelta(days=1)

# mark all the shifted
shifted = tues_shift | mon_shift | sun_shift

# shift the rest
hours_shift = hours_shift & ~shifted
df.loc[hours_shift, 'date'] -= pd.Timedelta(days=1)

df

输出(date列):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
+----+---------------------+------------+------------+------+
|    |      DateTime       | StartDate  |    date    |  day |
+----+---------------------+------------+------------+------+
|  0 | 2019-04-03 11:00:00 | 2019-04-03 | 2019-04-03 |    2 |
|  1 | 2019-04-03 12:00:00 | 2019-04-03 | 2019-04-03 |    2 |
|  2 | 2019-04-04 07:00:00 | 2019-04-03 | 2019-04-03 |    3 |
|  3 | 2019-04-04 10:00:00 | 2019-04-03 | 2019-04-03 |    3 |
|  4 | 2019-04-04 11:00:00 | 2019-04-04 | 2019-04-04 |    3 |
|  5 | 2019-04-05 10:00:00 | 2019-04-04 | 2019-04-04 |    4 |
|  6 | 2019-04-06 11:00:00 | 2019-04-06 | 2019-04-06 |    5 |
|  7 | 2019-04-06 12:00:00 | 2019-04-06 | 2019-04-06 |    5 |
|  8 | 2019-04-08 23:00:00 | 2019-04-06 | 2019-04-06 |    0 |
|  9 | 2019-04-09 09:00:00 | 2019-04-06 | 2019-04-06 |    1 |
| 10 | 2019-04-09 10:00:00 | 2019-04-06 | 2019-04-06 |    1 |
| 11 | 2019-04-09 11:00:00 | 2019-04-09 | 2019-04-09 |    1 |
+----+---------------------+------------+------------+------+
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55797048

复制
相关文章
根据分组依据对Java集合元素进行分组
业务背景:在项目中有个“分账”功能,就是支付的钱一部分要根据不同商品的分账金额自动分给平台提供商。
张张
2019/12/25
2.4K0
Python对字典根据键值分组进行排序
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/119530.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/11
4.5K0
java小技能:对list集合根据条件进行分组、过滤和字段筛选
需求:修改代理商角色权限时,判断是否存在权限被移除,如果存在,则穿透删除所有下级代理商相对应的权限值。
公众号iOS逆向
2022/12/19
6.2K0
java小技能:对list集合根据条件进行分组、过滤和字段筛选
mysql语句根据一个或多个列对结果集进行分组
接下来我们使用 GROUP BY 语句 将数据表按名字进行分组,并统计每个人有多少条记录:
用户4988376
2021/07/16
3.6K0
Java对List列表进行分组处理(对List列表固定分组/对List列表平均分组)
将一组数据平均分成n组 即:数据分组数固定为N,每组数据个数不定,每组个数由List列表数据总长度决定 /** * 将一组数据平均分成n组 * * @param source 要分组的数据源 * @param n 平均分成n组 * @param <T> * @return */ public static <T> List<List<T>> averageAssign(List<T> source, int n) { List<List<T>> result = new Ar
目的地-Destination
2023/03/06
3.5K0
Mysql 根据时间戳按年月日分组统计(做个收藏)
本文由 小马哥 创作,采用 知识共享署名4.0 国际许可协议进行许可 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
IT小马哥
2020/03/18
4.3K0
「R」怎么对连续变量分组并进行生存分析
在探究基因表达、基因拷贝数等连续变量对癌症病人的预后情况的影响时,我不得不面对和处理的主要问题是如何对这种连续型的变量进行分组,然后进行相应的生存分析。
王诗翔呀
2020/07/06
4.2K0
「R」怎么对连续变量分组并进行生存分析
EXTJS7 自定义分组规则
在Store.grouper属性配置Ext.util.Grouper实现自定义分组规则 关键配置 grouper:{ // "DESC" direction: "ASC", // 分组关键字计算函数,入参数据记录,返回分组关键字值,如果不实现此函数则取property配置的记录字段值 groupFn: function(record) { return record.data.prop1 + record.data.prop2; }, // 直接取记录字段 property: 'prop
路过君
2020/06/19
4120
对 list 中的相同数据进行分组
同一组数据分组 需求:一个 list 里可能会有出现一个用户多条数据的情况。要把多条用户数据合并成一条。 思路:将相同的数据中可以进行确认是相同的数据,拿来做分组的 key,这样保证不会重。 实际中使用,以用户数据为例,可能用户名和身份证号是不会变的,用这两个条件拼接起来。
潇洒
2019/06/28
5.7K0
Java8 新特性 list集合利用stream根据对象得某一属性对集合进行分组,附加8之前分组
Java8之后很多新特性,接下来主要讲一下, list集合利用stream根据对象得某一属性对集合进行分组! 话不多说,上代码: 首先准备实体类:
掉发的小王
2022/07/11
1.9K0
sql对多个条件进行分组求和_分组求和法例题附答案
大家好,又见面了,我是你们的朋友全栈君。 在ireport中实现分组,求和。效果如下 name total A 2 A 3 subtotal 5 B 4 B 5 subtotal 9 添加Document–>Variables–>Variable Name 建立自定义的求和函数 设置相关属性。 Calculation 设置为sum reset type为report Reset group 选择自己创建的分组。 increment type 为Group Variable Expression填写你要累计的对象表达式。 new Integer($F{rxNo}) Initial Value Expression处填写数据类型的初始化对象。 new java.lang.Integer(0)
全栈程序员站长
2022/10/03
2.8K0
python 连续值分组统计
python 连续值分组统计
Java架构师必看
2021/08/10
1.4K0
python 连续值分组统计
SpringBoot分组校验及自定义校验注解
在日常的开发中,参数校验是非常重要的一个环节,严格参数校验会减少很多出bug的概率,增加接口的安全性。在此之前写过一篇SpringBoot统一参数校验主要介绍了一些简单的校验方法。而这篇则是介绍一些进阶的校验方式。比如说:在某个接口编写的过程中肯定会遇到,当xxType值为A,paramA值必传。xxType值为B,paramB值必须传。对于这样的,通常的做法就是在controller加上各种if判断。显然这样的代码是不够优雅的,而分组校验及自定义参数校验,就是来解决这个问题的。
不一样的科技宅
2020/09/22
2.3K0
SpringBoot分组校验及自定义校验注解
Java8 Stream groupingBy对List进行分组
提到Group By,首先想到的往往是sql中的group by操作,对搜索结果进行分组。其实Java8 Streams API中的Collector也支持流中的数据进行分组和分区操作,本片文章讲简单介绍一下,如何使用groupingBy 和 partitioningBy来对流中的元素进行分组和分区。
全栈程序员站长
2022/09/24
4K0
自定义分区、数据类型、排序、分组
自定义分区、数据类型、排序、分组 /** * * @author 自定义数据类型 键对象 * */ public class KeyPair implements WritableComparable<KeyPair> { private int year; private double hot; public int getYear() { return year; } public void setYear(int year) {
汤高
2018/01/11
8420
sql判断是否连续并生成连续分组id
想实现根据时间升序排序取出同班级下一个进入班级的时间,然后判断同一班级上一个人和下一个人是否连续,并生成符合分组条件的连续分组id。
chimchim
2022/11/13
1.1K0
sql判断是否连续并生成连续分组id
根据MP3 Tag进行文件夹自动分组
很简单, 重命名的时候使用一段变量: %album%\%title% 就可以根据 MP3 文件的专辑和标题自动分到不同的文件夹
szhshp
2022/09/21
7980
【Android 内存优化】自定义组件长图组件 ( 自定义组件构造方法 )
在代码中创建 View 对象 , 就会调用该构造函数 , 其中 Context context 参数是组件运行的环境 , 可以从该 Context 对象中获取当前的主题 , 资源等 ;
韩曙亮
2023/03/27
7970
【Android Gradle 插件】自定义 Gradle 任务 ⑪ ( Gradle 任务分组 | 为自定义 Gradle 任务指定分组 | 为自定义 Gradle任务指定任务描述 | 代码示例 )
等分组 , 是 Gradle 自带分组 , 自定义的 Gradle 任务 默认放置在 other 分组 中 ;
韩曙亮
2023/03/30
5250
【Android Gradle 插件】自定义 Gradle 任务 ⑪ ( Gradle 任务分组 | 为自定义 Gradle 任务指定分组 | 为自定义 Gradle任务指定任务描述 | 代码示例 )
点击加载更多

相似问题

自定义DateTime日长

01

如何根据自定义规则对excel项进行分组?

21

如何根据自定义的周对记录进行分组?

10

根据工作日对RadJumplist中的项目进行分组

13

连续工作日的Javascript (无周末)

310
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文