用行中的时间戳和行中列元素的总和找到行中达到特定order_id的持续时间python

问题描述

这是我的数据:

https://docs.google.com/spreadsheets/d/1Nyvx2GXUFLxrJdRTIKNAqIVvGP7FyiQ9NrjKiHoX3kE/edit?usp=sharing

Dataset

这是数据集的一小部分,具有100个order_id。

  1. 我想在@timestamp列中找到有关order_id的持续时间。例。对于order_id 3300400,持续时间将从索引6到索引0。对于所有其他订单ID,同样如此。

  2. 我想获取有关订单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时,该代码才有效。至少应该让您知道从哪里开始