我有一个有4列的DF.我想根据日期、Start_Time和End_Time粘贴每个id的行.
我想把两次之间的15个间隔改成1.然后把它们贴在每个ID上.
例如,对于id 1,'2022-07-21 12:15:00 13:00:00'
,我想为12-13创建1,1,1,0,而所有其他值都应该为零.
我提供了如下df,您可以看到这一点.例如,id=1和2.我们没有2022-07-20的任何内容,所以我将所有 值为零.其他ID和日期也是如此.以下是DF:
df = pd.DataFrame()
df['id'] = [1, 1, 2, 2, 3]
df['date'] = ['2022-07-21','2022-07-22','2022-07-21','2022-07-22', '2022-07-20' ]
df['time_start'] = ['12:15:00','12:45:00','12:45:00','12:00:00','12:30:00' ]
df['end_start'] = ['13:00:00','13:00:00','13:00:00','13:00:00','13:00:00' ]
id date time_start end_start
1 2022-07-21 12:15:00 13:00:00
1 2022-07-22 12:45:00 13:00:00
2 2022-07-21 12:45:00 13:00:00
2 2022-07-22 12:00:00 13:00:00
3 2022-07-20 12:30:00 13:00:00
下面是我想要的df:
df = pd.DataFrame()
df['id'] = [1, 2, 3]
df['d112:00:00'] = [ 0,0,0]
df['d112:15:00'] = [0,0,0]
df['d112:30:00'] = [0,0,1]
df['d112:45:00'] = [0,0, 1]
df['d113:00:00'] = [0,0,0]
df['d212:00:00'] = [ 0,0,0]
df['d212:15:00'] = [1,0,0]
df['d212:30:00'] = [ 1,0,0]
df['d212:45:00'] = [ 1,1,0]
df['d213:00:00'] = [ 0,0,0]
df['d312:00:00'] = [ 0,1,0]
df['d312:15:00'] = [ 0,1,0]
df['d312:30:00'] = [ 0,1,0]
df['d312:45:00'] = [ 1,1,0]
df['d313:00:00'] = [ 0,0,0]
id d112:00:00 d112:15:00 d112:30:00 d112:45:00 d113:00:00 d212:00:00 d212:15:00 d212:30:00 d212:45:00 d213:00:00 d312:00:00 d312:15:00 d312:30:00 d312:45:00 d313:00:00
1 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0
2 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0
3 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0
你能帮我拿一下吗?谢谢