使用python计算在另外2列中彼此匹配的2行之间的同一列中的持续时间?

时间:2018-04-25 07:18:47

标签: python pandas

我有一个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)(plateno& serialno需要相同)之间的持续时间(从/到达),依此类推,然后创建一个新的列根据plateno的持续时间。

我遇到的问题是,我不知道如何在需要某些要求时使用python进行计算,然后按照2行之间的计算进行计算。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您的每个plateno, serialno看起来都有一个目的地和一个起点。您可以使用plateno, 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