簡體   English   中英

使用過去 24 小時的總和創建新列

[英]creating new column with the sum of the past 24 hours

對於以下 dataframe:df_data,有沒有辦法創建一個新列來計算過去 24 小時或前一天的車輛數量?

df_data = {'day_of_year' : [1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2], 'nr_of_vehicles' : [254,154,896,268,254,501,840,868,654,684,684,681,632,468,987,134,336,119,874,658,121,254,154,896,268,254,501,840,868,654,684,684,681,632,468,987,134,336,119,874,658,121,268,254,501,840,868,654], 'hour' : [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]} 

視覺表示(nr_of_vehicles 每小時計數):

數據框

我想通過使用以下方法按 day_of_year 對數據進行分組

df_data_day = df_data.groupby('day_of_year').agg({'nr_of_vehicles': 'sum'})

但我不知道如何將其正確分配給列,因為原始 dataframe 中有更多行。

你不遠:你只需要使用transform而不是agg

df_data_day = df_data.groupby('day_of_year')['nr_of_vehicles'].transform('mean')

您甚至可以直接添加一個新列:

df_data['nr_by_day'] = df_data.groupby('day_of_year')['nr_of_vehicles'].transform('mean')

順便說一句:當你的標題說總和時,我使用了你提出的計算平均值的代碼......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM