第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

從分組計數(shù)創(chuàng)建列(涉及日期時間列)

從分組計數(shù)創(chuàng)建列(涉及日期時間列)

回首憶惘然 2021-06-02 21:34:40
我在老鼠身上做實驗。我的 df 的一部分如下。Index   Name    Time        Food    Experiment Start0       Peter   09:00:00    Cheese  2018-08-06 07:30:001       Peter   10:00:00    Nut     2018-08-06 07:30:002       Peter   11:00:00    Nut     2018-08-06 07:30:003       Peter   12:00:00    Cheese  2018-08-06 07:30:004       Peter   13:00:00    Nut     2018-08-06 07:30:005       Peter   14:00:00    Nut     2018-08-06 07:30:006       Peter   15:00:00    Nut     2018-08-06 07:30:007       Peter   11:10:00    Nut     2018-08-12 10:30:008       Peter   12:10:00    Cheese  2018-08-12 10:30:009       Peter   13:10:00    Nut     2018-08-12 10:30:00我想要一個這樣的 df:Index   Name    Experiment Start        Last Meal in Experiment0       Peter   2018-08-06 07:30:00     2018-08-06 15:00:001       Peter   2018-08-12 10:30:00     2018-08-12 13:10:00-not enough width-Count Food  Count Nut   Count Cheese7           5           23           2           1要找到“實驗中的最后一餐”,很容易。我按“時間”(用餐時間)排序,所以最近的時間總是在最前面。df = df.sort_values(by='Time', ascending=False)然后,通過刪除所有其他重復(fù)的名稱和實驗開始時間,我只保留那些最晚的時間。df = df.drop_duplicates(subset=['Name', 'Experiment Start'])我這樣計算最后一頓飯的時間:df['Last Meal in Experiment'] = df['Experiment Start'].dt.floor('D') + df['Time']現(xiàn)在我應(yīng)該有這樣的東西(以及時間和食物列):Index   Name    Experiment Start        Last Meal in Experiment0       Peter   2018-08-06 07:30:00     2018-08-06 15:00:001       Peter   2018-08-12 10:30:00     2018-08-12 13:10:00但我缺少如何通過 Name 的實驗開始時間獲得食物數(shù)量和奶酪/堅果數(shù)量。在刪除重復(fù)項之前,我嘗試了這樣的操作:df['Count Food'] = df.groupby('Name')['Experiment Start'].transform('count')但是熊貓有一個錯誤(新列的格式為 dt),我迷路了。
查看完整描述

1 回答

?
鴻蒙傳說

TA貢獻1865條經(jīng)驗 獲得超7個贊

使用GroupBy.sizeunstack

df1= df.groupby(['Name','Experiment Start','Food']).size().unstack()

df1['All'] = df1.sum(axis=1)

或者crosstab:


df1 = pd.crosstab([df['Name'],df['Experiment Start']], df['Food'], margins=True)

df = df.sort_values(by='Time', ascending=False)

df = df.drop_duplicates(subset=['Name', 'Experiment Start'])

df['Last Meal in Experiment'] = df['Experiment Start'].dt.floor('D') + df['Time']


df = df.join(df1, on=['Name','Experiment Start'])

print (df)

        Name     Time Food    Experiment Start Last Meal in Experiment  \

Index                                                                    

6      Peter 15:00:00  Nut 2018-08-06 07:30:00     2018-08-06 15:00:00   

9      Peter 13:10:00  Nut 2018-08-12 10:30:00     2018-08-12 13:10:00   


       Cheese  Nut  Count  

Index                      

6           2    5      7  

9           1    2      3  


查看完整回答
反對 回復(fù) 2021-06-06
  • 1 回答
  • 0 關(guān)注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號