我有一个如下数据集:
dfTrip:
user_id status length
1335 start 0 -> 1st trip starts here
1335 zz 1
1335 zz 7
1335 zz 1
1335 end 5 -> 14 in total for 1st trip
1335 zz 1 -> not added
1335 start 0 -> 2nd trip starts here
1335 zz 4
1335 zz 7
1335 zz 6
1335 end 5 -> 22 in total for 2nd trip
我想计算每个" user_id"的行程长度之和。并保存在字典中。这次旅行应该从"开始"结束"结束"。例如,这里我们应该有这个结果:
myDict={(1: 14), (2: 22),...}
键显示第i个行程,值显示行程的长度。
有人可以帮我吗?
答案 0 :(得分:1)
可能有一个更聪明的解决方案,但这应该有效。我们需要遍历行。
trips = {} #Initialize dict
onTrip = False
i = 1
for index, row in dfTrip.iterrows():
if row['status']=='start': #Start the trip
onTrip=True
trips[i]=row['length']
continue
if onTrip: #Add each value of the trip
trips[i]+=row['length']
if row['status']=='end': #End the trip, incrementing i
onTrip=False
i+=1