Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何通过重新设计的案例组对时间戳数据进行排序?_Python_Pandas - Fatal编程技术网

Python 如何通过重新设计的案例组对时间戳数据进行排序?

Python 如何通过重新设计的案例组对时间戳数据进行排序?,python,pandas,Python,Pandas,我在下面有一个数据集: 我想制作按案例ID分类的案例列表,以及按动作时间排序的事件 案例ID应从0开始计数,事件应在“[]”之间进行Oragnize 如何按重新设计的案例组对时间戳数据进行排序,如下所示 最后,我想在每一个案例ID中列出第一个动作时间和最后一个动作时间 是否有有用的功能来执行这些操作?使用: df['Action Time'] = pd.to_datetime(df['Action Time']) df = (df.sort_values(['Case Id','Actio

我在下面有一个数据集:

我想制作按案例ID分类的案例列表,以及按动作时间排序的事件

案例ID应从0开始计数,事件应在“[]”之间进行Oragnize

如何按重新设计的案例组对时间戳数据进行排序,如下所示

最后,我想在每一个案例ID中列出第一个动作时间和最后一个动作时间

是否有有用的功能来执行这些操作?

使用:

df['Action Time'] = pd.to_datetime(df['Action Time'])

df = (df.sort_values(['Case Id','Action Time'])
        .groupby('Case Id')['Process']
        .agg(list)
        .reset_index(name='Events'))
第一次和最后一次使用:

df = (df.sort_values(['Case Id','Action Time'])
        .groupby('Case Id')['Process']
        .agg(Events = ("Process": list),
             First_time = ("Action Time": "first"),
             Last_time = ("Action Time": "last"))
        .reset_index())

要改进jezrael的回答,请提取流程的字母并获取第一个和最后一个事件:

df['Action Time'] = pd.to_datetime(df['Action Time'])

df['Process'] = df['Process'].str.split(" ").str[-1]

df = df.sort_values(['Case Id','Action Time']
        ).groupby('Case Id'
        ).agg(Events = ("Process", list),
             First = ("Process", "first"),
             Last = ("Process", "last"), )