0
我有以下熊猫数据帧: 编辑:它是由CREATED_DATE计算时间差
排序created_date incoming_message
0 11/13/2014 18:06 1
1 11/13/2014 21:56 0
2 11/14/2014 3:40 1
3 11/14/2014 3:55 1
4 11/14/2014 5:09 0
incoming_message表示该消息的方向(1 =呼入, 0 =传出)。 我试图找出消息交换的平均时间。 含义,1)响应的时间(外发消息),以及2)听到多久(传入消息)。 如果有多个传入消息,我想根据第一个传入消息计算持续时间。
对于
2 11/14/2014 3:40 1
3 11/14/2014 3:55 1
4 11/14/2014 5:09 0
我应该算
2 11/14/2014 3:40 1
4 11/14/2014 5:09 0
这里的时间是我的尝试:
def responseTime(df):
ttr = [] #time to respond
tth = [] #time to hear back
i = 0
j = i+1
while j <= df.count().max()-1:
while df.iloc[i]['incoming_message'] == df.iloc[j]['incoming_message']:
j += 1
fd = df.iloc[i]
nd = df.iloc[j]
if fd['incoming_message'] != nd['incoming_message']:
if fd['incoming'] == 1:
ttr.append((nd['created_date'] - fd['created_date']).seconds/3600.0)
else:
tth.append((nd['created_date'] - fd['created_date']).seconds/3600.0)
i = j
j = i+1
return np.mean(ttr), np.mean(tth)
虽然此功能,我觉得有更有效的办法解决问题。任何意见和建议将不胜感激!
谢谢!我从你的回答中了解了一些关于熊猫的知识 – chungsangh 2014-11-17 18:06:44
我得到了总体思路和方法,但是你能否详细说明石斑鱼在做什么?我的印象是,如果表示断点,石斑将是[0,1,0,0,1]。 – chungsangh 2014-11-17 18:26:06
我按照你的'描述'进行分组。如果它真的[0,1,0,0,1]那么它更容易。督察。似乎你想计算4和2之间的差异(并且3在该组中)。暗示0,1在另一组中。 – Jeff 2014-11-17 22:23:01