Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.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中基于DataFrame中的日期创建列?_Python_Pandas_Dataframe_Date_Aggregation - Fatal编程技术网

如何在Python中基于DataFrame中的日期创建列?

如何在Python中基于DataFrame中的日期创建列?,python,pandas,dataframe,date,aggregation,Python,Pandas,Dataframe,Date,Aggregation,我的数据框架如下所示: rng = pd.date_range('2020-12-01', periods=5, freq='D') df = pd.DataFrame({"ID" : ["1", "2", "1", "1", "2"], "Date" : rng, "ki

我的数据框架如下所示:

rng = pd.date_range('2020-12-01', periods=5, freq='D')
df = pd.DataFrame({"ID" : ["1", "2", "1", "1", "2"],
                   "Date" : rng,
                   "kind" : ["active", "not_active", "active", "active", "not_active"],
                   "status" : ["b2", "b2", "g8", "g8", "v10"]})
我需要创建DataFrame,它将显示上次活动和上次未活动协议的状态。下面是我上传的结果示例:


如果对日期时间进行了排序,则可以使用:

如果不确定是否已排序,请添加:

df = (df.pivot_table(index='ID', columns='kind', values='status', aggfunc='last')
        .reset_index()
        .rename_axis(None, axis=1))
df = (df.sort_values(['ID','Date'])
        .pivot_table(index='ID', columns='kind', values='status', aggfunc='last')
        .reset_index()
        .rename_axis(None, axis=1))
print (df)
  ID active not_active
0  1     g8        NaN
1  2    NaN        v10