问题描述
这是我的数据:
https://docs.google.com/spreadsheets/d/1Nyvx2GXUFLxrJdRTIKNAqIVvGP7FyiQ9NrjKiHoX3kE/edit?usp=sharing
这是数据集的一小部分,具有100个order_id。
-
我想在@timestamp列中找到有关order_id的持续时间。例。对于order_id 3300400,持续时间将从索引6到索引0。对于所有其他订单ID,同样如此。
-
我想获取有关订单ID的items.quantity和items.price的总和。例如对于order_id 3300400,items.quantity = 2,而items.price = 499 + 549 =1048。与其他order_id类似。
我是python的新手,但我认为它将需要使用循环。任何帮助将不胜感激。
感谢和问候, Shantanu Jain
解决方法
您已经找到了如何使用好groupby()方法的方法。为了解决时间戳差异,需要做更多的工作。
# Function to get first and last stamps within group
def get_index(df):
return df.iloc[[0,-1]]
# apply function and then use diff method on ['@timestamp']
df['time_diff'] = df.groupby('order_id').apply(get_index)['@timestamp'].diff()
我没有测试任何此代码,并且仅当您的时间戳记为pd.timestamps时,该代码才有效。至少应该让您知道从哪里开始