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

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

python 給定感興趣的子級別的 groupby 方法

python 給定感興趣的子級別的 groupby 方法

哆啦的時光機 2023-12-09 15:36:55
給定如下所示的 pandas 數據框,我想對“用戶”進行某種分組,但在時間列上有一個特殊定義的子標準,對金額列進行求和。   amount  time users0      11     0     A1      23    10     A2      12    20     A3      34    30     A4      56    40     B5      77    50     B6      89    60     C為此,我有一對 range_start 和 range_end 例如在元組或類似列表中。時間列的這些 sub_group_ranges 應該使我能夠在數據幀內的每個批次上應用 groupby().sum 。sub_group_ranges = [(0,0),(20,30),(40,50),(60,60)]結果應如下所示。每個用戶的間隔計數是任意的。   sum_amount_on_timerange user0                       57    A1                      133    B2                       89    C我發現這篇文章很相似,但如果我沒有連續的間隔(意味著第一個間隔的結束不是下一個間隔的開始),我不明白如何使用它。如果有人知道要尋找什么,那就太好了。多謝
查看完整描述

1 回答

?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

我不確定我完全理解你想要做什么,但這里有一些可能有用的東西


df = pd.DataFrame([users,time]).T

df.columns = ['users','time']


def filter_time_range(ele,trange):

    if (ele>trange[0]) and (ele<=trange[1]):

        return ele

    else:

        return np.nan

   

sub_group_ranges = [(0,0),(20,30),(40,50),(60,60)]

for trange in sub_group_ranges:

    df[str(trange)] = df['time'].apply(lambda x: filter_time_range(x,trange))

    

df

導致


  users time    (0, 0)  (20, 30)    (40, 50)    (60, 60)

0   A   0        NaN     NaN           NaN      NaN

1   A   10       NaN     NaN           NaN      NaN

2   A   20       NaN     NaN           NaN      NaN

3   A   30       NaN     30.0           NaN     NaN

4   B   40       NaN     NaN           NaN      NaN

5   B   50       NaN     NaN           50.0     NaN

6   C   60       NaN     NaN           NaN      NaN

以及您的用戶分組


df.groupby(['users']).sum()



  (0, 0)    (20, 30)    (40, 50)    (60, 60)

users               

A     0.0    30.0   0.0     0.0

B     0.0    0.0    50.0    0.0

C     0.0    0.0    0.0     0.0

我已從amount我的數據框中排除


查看完整回答
反對 回復 2023-12-09
  • 1 回答
  • 0 關注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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