也許我想的是錯誤的方式,但我想不出一個簡單的方法來做到這一點在熊貓。我試圖獲得一個數據框,該數據框被設置點之上的計數值與下面的計數值之間的關係過濾。它是更爲複雜,它如何比較大熊貓的羣體大小
人爲的例子:比方說,我有人民和他們的考試成績在幾個測試數據集:
Person | day | test score | ---------------------------- Bob 1 10 Bob 2 40 Bob 3 45 Mary 1 30 Mary 2 35 Mary 3 45
我想通過考試分數的數量來過濾該數據幀> = 40,但總人數爲每人。假設我將閾值設置爲50%。所以鮑勃會有三分之二的考試成績,但瑪麗會得到三分之一的成績並被排除在外。
我的最終目標是讓一個groupby對象做/ /等。在那些符合門檻的。所以在這種情況下,它看起來像這樣:
test score Person | above_count | total | score mean | ------------------------------------------- Bob 2 3 31.67
我試過以下,但無法弄清楚怎麼做我的groupby對象。
df = pd.read_csv("all_data.csv")
gb = df.groupby('Person')
df2 = df[df['test_score'] >= 40]
gb2 = df2.groupby('Person')
# This would get me the count for each person but how to compare it?
gb.size()
只是好奇,是否有使用.sum()而不是.count()的原因? – user1601333
's.ge(40)'將會產生一個boolean arrary。如果你總結他們,你會得到True實例的數量。如果你計數,你會得到觀察次數(包括假值)。 – Alexander