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

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

如何使用python pandas按列分組并計算條件值?

如何使用python pandas按列分組并計算條件值?

白衣非少年 2021-05-30 10:57:09
輸入:df=pd.DataFrame({    'BusId':['abc1','abc2','abc3','abc1','abc2','abc4'],    "Fair":[5,6,7,10,5,4]})需要按 BusId 分組并需要以下輸出輸出:BusId   Count of Fair>=5    Count of Fair>=10abc1    2                         1abc2    1                         0abc3    1                         0abc4    0                         0謝謝您的幫助。
查看完整描述

3 回答

?
德瑪西亞99

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

您可以使用pd.cut來避免對范圍進行硬編碼。只需剪切數(shù)據(jù),然后應(yīng)用即可cumsum:


binned_data = pd.cut(df.Fair, 

                     bins=[0, 5, 10, np.inf], 

                     labels=['>=0', '>=5', '>=10'], 

                     right=False)

df = (pd.get_dummies(binned_data)

        .sort_index(axis=1, ascending=False)

        .cumsum(1)

        .groupby(df.BusId, sort=False)

        .sum()

        .iloc[:, 1::-1]))


df

       >=5  >=10

BusId           

abc1     2     1

abc2     2     0

abc3     1     0

abc4     0     0


查看完整回答
反對 回復 2021-06-01
?
慕哥6287543

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

為避免聚合,您也可以apply改用。實質(zhì)與user3483203的答案相同:


df.groupby('BusId').apply(lambda x: pd.Series(

               dict(five=(x.Fair >=  5).sum(),

                     ten=(x.Fair >= 10).sum())))

# BusId              five              ten     

# abc1                  2                1

# abc2                  2                0

# abc3                  1                0

# abc4                  0                0


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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