亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

變量出現在我的數據框中的第一個和最后一個日期

變量出現在我的數據框中的第一個和最后一個日期

慕勒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 關注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號