编辑
我想添加一个称为prev_message_left的新列,该列计算为否。每个ID的messages_left个数小于给定时间之前的日期。基本上,我想有一列来说明在当前时间和日期之前,我们有多少次给客户打电话留言。这就是我的数据框的样子
date ID call_time message_left
20191101 1 8:00 0
20191102 2 9:00 1
20191030 1 16:00 1
20191103 2 10:30 1
20191105 2 14:00 0
20191030 1 15:30 0
我想添加一列称为prev_message_left_count
date ID call_time message_left prev_message_left_count
20191101 1 8:00 0 1
20191102 2 9:00 1 0
20191030 1 16:00 1 0
20191103 2 10:30 1 1
20191105 2 14:00 0 2
20191030 1 15:30 0 0
我的数据框有15列和9万行。
我在此数据框中还有其他各种列,并且有“ No Message Left”(无消息遗留),“ Responded”(已响应)之类的列,我将不得不为这些列计算称为“ Previous_no_message_left”和“ prev_responded”的其他列,类似于“ prev_message_left”
答案 0 :(得分:1)
IIUC cumcount
在sort_values
之后
df['pervious']=df.sort_values(['date','call_time']).groupby('ID').cumcount()
df
date ID call_time message_left pervious
0 20191101 1 8:00 0 2
1 20191102 2 9:00 1 0
2 20191030 1 16:00 1 1
3 20191103 2 10:30 1 1
4 20191105 2 14:00 0 2
5 20191030 1 15:30 0 0