首页 > 解决方案 > 使用python计算它们在另外2列中彼此匹配的2行之间同一列中的持续时间?

问题描述

我有一个dataframe如下(例如只显示 4 行,但dataframe有超过一千行):

id  location    plateno serialno    type    from/arrive

755 A   ade2384 TA144   11014   2018-01-02 10:13:00

762 A   ax395   TB543   11014   2018-01-02 10:43:00

920 C   ax395   TB543   11000   2018-01-03 09:06:00

976 B   ade2384 TA144   11000   2018-01-03 11:39:00

我想获取 id 755(位置 A)到 976(位置 C)之间的持续时间(从/到达)(平板和序列号需要相同)等等,然后根据创建一个新的持续时间列平台。

我面临的问题是,当需要一些要求时,我不确定如何使用 python 进行计算,然后在 2 行之间进行计算。

谢谢您的帮助。

标签: pythonpandas

解决方案


看起来您的每个plateno, serialno. 您可以使用 min 和 max byplateno, serialno然后取差值。

df['from/arrive'] = pd.to_datetime(df['from/arrive'])
df = df.groupby(['plateno', 'serialno']).agg({'from/arrive' :['min', 'max']})
df.columns = df.columns.droplevel()
df = df.reset_index()
df['diff'] = df['max'] - df['min']

或者,您也可以type在数据中使用


推荐阅读