变量出现在我的数据框中的第一个和最后一个日期

我希望变量出现在我的数据框中的第一个和最后一个日期:



   datetime           A

2019-03-04 00:03      1

2019-03-04 00:04      1

2019-03-04 00:05      2

2019-03-04 00:06      2 

2019-03-04 00:07      1

2019-03-04 00:08      2

2019-03-04 00:09      3

2019-03-04 00:10      3

2019-03-04 00:11      3

2019-03-04 00:12      4

2019-03-04 00:13      3

所需的输出:


A            First                     Last

1      2019-03-04 00:03          2019-03-04 00:07

2      2019-03-04 00:05          2019-03-04 00:08

3      2019-03-04 00:09          2019-03-04 00:13

4      2019-03-04 00:12          2019-03-04 00:12

我试过这个:


data_df=pd.Series({x : y.datetime.tolist() for x , y in df.groupby('A')})

data_df=pd.DataFrame({'A':data_df.index, 'datetime':data_df.values})

data_df

我有这个输出


A                              datetime

1       [2019-03-04 00:03,2019-03-04 00:04,2019-03-04 00:07]

2       [2019-03-04 00:05,2019-03-04 00:06,2019-03-04 00:08]

3       [2019-03-04 00:09,2019-03-04 00:10,2019-03-04 00:11,2019-03-04 00:13]

4       [2019-03-04 00:12]


慕勒3428872
浏览 120回答 1
1回答

沧海一幻觉

agg在groupby对象上使用并传递函数列表:In[108]:df.groupby('A').agg(['first','last'])Out[108]:              datetime                                    first                lastA                                        1 2019-03-04 00:03:00 2019-03-04 00:07:002 2019-03-04 00:05:00 2019-03-04 00:08:003 2019-03-04 00:09:00 2019-03-04 00:13:004 2019-03-04 00:12:00 2019-03-04 00:12:00如果需要,您可以致电reset_index:In[109]:df.groupby('A').agg(['first','last']).reset_index()Out[109]:    A            datetime                                       first                last0  1 2019-03-04 00:03:00 2019-03-04 00:07:001  2 2019-03-04 00:05:00 2019-03-04 00:08:002  3 2019-03-04 00:09:00 2019-03-04 00:13:003  4 2019-03-04 00:12:00 2019-03-04 00:12:00这要求first并last为每个组更新 感谢@Wen-Ben 的建议,如果我们选择单列,那么这不会在 df 中创建多索引:In[110]:df.groupby('A')['datetime'].agg(['first','last'])Out[110]:                 first                lastA                                        1 2019-03-04 00:03:00 2019-03-04 00:07:002 2019-03-04 00:05:00 2019-03-04 00:08:003 2019-03-04 00:09:00 2019-03-04 00:13:004 2019-03-04 00:12:00 2019-03-04 00:12:00与您想要的输出相匹配
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python