我有一个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行之间的计算进行计算。
感谢您的帮助。
答案 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