我有一个通话数据-称之为total_call
,它存储了与我们电话号码之间的所有通话。该数据帧包含call_id,呼叫者的号码和接收者的号码,获取的日期时间。
列名分别如下所示:
# total_call data
call_id | from_number | to_number | retrieved_date
1 1 2 2020-01-12 12:03:34
2 2 1 2020-01-12 12:06:34
3 1 3 2020-01-15 13:02:40
4 2 1 2020-01-15 13:05:40
我拥有的第二个数据帧是missed_call
数据,它是从第一个数据帧中过滤出来的。它具有与第一个相同的列名,但在to_number
字段中,它只是我们的电话号码。我有一种方法可以知道哪个呼叫是从我们的线路打给客户的,反之亦然。
# missed_call data
call_id | from_number | to_number | retrieved_date
1 1 2 2020-01-12 12:03:34
3 1 3 2020-01-15 13:02:40
现在,我需要知道未接来电是否已被回拨。我的解决方案是将from_number
数据的missed_call
与to_number
数据的total_call
进行匹配,并将这两个retrieved_date
之间的差异限制为最大2小时。我试图合并这些数据框,然后使用 ifelse ,但是对电话号码有很多重复的观察,这使得合并进度错误。
# After merging, i have this (f_num: from_number; t_num: to_number)
f_num|call_id.x|t_num.x|retrieved_date.x |call_id.y|f_num.y|retrieved_date.y
1 1 2 2020-01-12 12:03:34 2 2 2020-01-12 12:06:34
1 1 2 2020-01-12 12:03:34 4 2 2020-01-15 13:05:40
1 3 3 2020-01-15 13:02:40 2 2 2020-01-12 12:06:34
1 3 3 2020-01-15 13:02:40 4 2 2020-01-15 13:05:40
# This is what i need
f_num|call_id.x|t_num.x|retrieved_date.x |call_id.y|f_num.y|retrieved_date.y
1 1 2 2020-01-12 12:03:34 2 2 2020-01-12 12:06:34
1 3 3 2020-01-15 13:02:40 4 2 2020-01-15 13:05:40
我该如何过滤数据以获得我想要的东西?非常感谢。
答案 0 :(得分:0)
未接来电是客户拨打您的电话号码,对吗?如果是这样,我会这样做:
python3 -m test_utils.py