所以,我有這樣的數據集: 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 年只有一個人持有多少個“ ”。(在本例中,該數字為 4,因為 pos“助理”由 2 個人持有)通過跑步(df.duplicated(subset=['Pos'], keep=False)).sum()year我在不考慮列“ ”的情況下獲得了單次出現的計數我試過(df.duplicated(subset=['Pos', 'year'], keep=False)).sum()pos但隨后它會計算和的單次出現次數years。(總共 6 個:4 個用于所有年份中僅由一個人擔任的職位,加上 2 個用于“年份”中不重復的行)我相信我需要使用 df.groupby,但我不確定語法。有任何想法嗎?提前致謝
1 回答

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