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

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

如何在 python 中的 groupby 之后刪除一行?

如何在 python 中的 groupby 之后刪除一行?

哆啦的時光機 2023-03-16 11:07:02
我有以下數(shù)據(jù)框:account_num   trans_cdi1             c1             d  3             d3             c3             d它是更大數(shù)據(jù)框的一部分。首先,我想對 account_num 列進行分組,然后刪除組中 trans_cdi 列中以“d”開頭的行。所以在這種情況下,新的數(shù)據(jù)框看起來像這樣:account_num   trans_cdi1             c1             d  3             c3             d我那樣試過,但它刪除了整個組:df = df.groupby("account_numb").filter(lambda x: x["trans_cdi"].iloc[0] != "d")謝謝!
查看完整描述

2 回答

?
躍然一笑

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

您可以先獲取每組的行數(shù),然后計算 if not(row count equals 0 and row equals d) 它處理每組中不等于 d 的第一行。


idx = df.groupby('account_num').cumcount()

out = df[~(idx.eq(0) & df['trans_cdi'].eq('d'))]

print(out)


   account_num trans_cdi

0            1         c

1            1         d

3            3         c

4            3         d


查看完整回答
反對 回復 2023-03-16
?
三國紛爭

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

filter由于某種原因我無法使用它,所以我transform改用了索引,它返回了預期的輸出:


df2 = df[df.groupby('account_num')['trans_cdi'].transform(lambda x: (x.iloc[0] != "d") | (x.index != x.index[0]))]



   account_num trans_cdi

0            1         c

1            1         d

3            3         c

4            3         d

這會概括您的想法嗎?


查看完整回答
反對 回復 2023-03-16
  • 2 回答
  • 0 關(guān)注
  • 114 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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