python - 使用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 行之间进行计算。
谢谢您的帮助。
解决方案
看起来您的每个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
在数据中使用
推荐阅读
- r - 计算每个 ID 的访问次数(累计),同时忽略 NA 和 0
- r - 当“选择未定义的列”时,如何查看我尝试选择的列?
- javascript - 如何从按钮滑块创建和读取值?
- javascript - 正则表达式 - 如何匹配逗号之间的文本
- mysql - Sql 存在 vs MySql 存在
- ios - 故事板初始化 UIView 而不是我的自定义类
- php - 如何从 PHP 之类的东西在 webpack 进程中导入文件
- pipeline - 5 级数据路径 - 多周期无流水线
- python - 在多线程中使用 sqlite3
- java - java.lang.ClassNotFoundException:org.spark_project.guava.collect.MapMaker