![](/img/trans.png)
[英]Sum values of a column for each value based on another column and divide it by total
[英]Divide dataframe column value by the total of the column
我的問題對你們中的許多人來說可能太容易了,但因為我是 Python 的初學者。
我想獲得包含 3 個不同可能值(1,0,-1)但排除列中的一個值(即-1)的列的值百分比。
我這樣做了: (df['col_name']).sum()/len(df.col_name)
然而,它也計算其中的 -1,而我只想獲得值 1/總和的百分比,但總和中沒有 -1。
謝謝您的幫助。
對於排除值,將-1
替換為缺失值:
df['col_name'].replace(-1, np.nan).sum()/len(df.col_name)
或者如果需要計算過濾系列的長度,則過濾掉-1
值:
np.random.seed(123)
df = pd.DataFrame({'col_name':np.random.choice([0,1,-1], size=10)})
print (df)
col_name
0 -1
1 1
2 -1
3 -1
4 0
5 -1
6 -1
7 1
8 -1
9 1
s = df.loc[df['col_name'] != -1, 'col_name']
print (s)
1 1
4 0
7 1
9 1
Name: col_name, dtype: int32
print (s.sum()/len(s))
0.75
print (s.mean())
0.75
假設你有這個 dataframe
df = pd.DataFrame({
'col_name': [1,1,0,-1,-1,1,0]
})
col_name
0 1
1 1
2 0
3 -1
4 -1
5 1
6 0
您想計算 1 的數量除以沒有 -1 的總數,即 5 個中的 3 個,對嗎?
numerator = sum(df['col_name'].apply(lambda x: 1 if x==1 else 0))
denominator = sum(df['col_name'].apply(lambda x: 0 if x==-1 else 1))
print(numerator/denominator)
Output 0.6
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.