所以,我有這樣的數(shù)據(jù)集: df=Id Pos Salary year 00 Chief 2000 200301 Assistant 1800 200302 Assistant 1950 200303 Analyst 5200 200304 Guard 1000 200305 Chief 2500 200406 Service 800 200307 Exec 10000 200508 Exec 12000 200509 Sales 1100 2007Pos我被要求計算2003 年只有一個人持有多少個“ ”。(在本例中,該數(shù)字為 4,因為 pos“助理”由 2 個人持有)通過跑步(df.duplicated(subset=['Pos'], keep=False)).sum()year我在不考慮列“ ”的情況下獲得了單次出現(xiàn)的計數(shù)我試過(df.duplicated(subset=['Pos', 'year'], keep=False)).sum()pos但隨后它會計算和的單次出現(xiàn)次數(shù)years。(總共 6 個:4 個用于所有年份中僅由一個人擔(dān)任的職位,加上 2 個用于“年份”中不重復(fù)的行)我相信我需要使用 df.groupby,但我不確定語法。有任何想法嗎?提前致謝
1 回答

月關(guān)寶盒
TA貢獻(xiàn)1772條經(jīng)驗 獲得超5個贊
year == 2003
在查找重復(fù)項之前,您可以先提取行的子集。
此外,您還需要在計算總和之前反轉(zhuǎn)結(jié)果,因為duplicated
會將重復(fù)的出現(xiàn)標(biāo)記為 True,而您需要唯一出現(xiàn)的總和。
嘗試這個:(~(df[df.year==2003].duplicated(subset=['Pos'], keep=False))).sum()
添加回答
舉報
0/150
提交
取消