为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕勒3428872 2022-01-11 19:42:25
我希望变量出现在我的数据框中的第一个和最后一个日期:   datetime           A2019-03-04 00:03      12019-03-04 00:04      12019-03-04 00:05      22019-03-04 00:06      2 2019-03-04 00:07      12019-03-04 00:08      22019-03-04 00:09      32019-03-04 00:10      32019-03-04 00:11      32019-03-04 00:12      42019-03-04 00:13      3所需的输出:A            First                     Last1      2019-03-04 00:03          2019-03-04 00:072      2019-03-04 00:05          2019-03-04 00:083      2019-03-04 00:09          2019-03-04 00:134      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                              datetime1       [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]
查看完整描述

1 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

agg在groupby对象上使用并传递函数列表:


In[108]:

df.groupby('A').agg(['first','last'])


Out[108]: 

             datetime                    

                first                last

A                                        

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

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

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

4 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                last

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

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

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

3  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                last

A                                        

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

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

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

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

与您想要的输出相匹配


查看完整回答
反对 回复 2022-01-11
  • 1 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信