簡體   English   中英

用於計算pandas列中每個值的百分比的函數

[英]Function to calculate the percentage each value has in a pandas column

我正在參加Kaggle的泰坦尼克號教程學習熊貓/機器學習。

這是我的內核: https//www.kaggle.com/trenzalore888/titanic/titanic-learning

我想創建一個帶有兩個參數的函數,dataframe和column name。 我希望這個函數計算每個類的百分比(假設它是二進制的,即0或1)。

我可以做這個硬編碼,即專門為泰坦尼克號設置工作,但我想創建一個功能,以便我將來可以使用它。

這是我失敗的嘗試:

traintotal=(len(train.index))
testtotal=(len(test.index))

def Is_data_imbalanced (df,objectivecolumn) :
    objectivecount= df.objectivecolumn[df.objectivecolumn > 0].sum()
    objectivecountpercentage=(objectivecount/traintotal)*100
    objectivecountrounded= np.ceil(objectivecountpercentage)
    return objectivecountrounded

Is_data_imbalanced(train,"Survived")

不幸的是我收到屬性錯誤:

AttributeError:'DataFrame'對象沒有屬性'objectivecolumn'

以下是有效的硬編碼版本:

traintotal=(len(train.index))
print("there are", traintotal,"rows in the train data")

testtotal=(len(test.index))
print("there are {} rows in the test data".format(testtotal))

Survialcount= train.Survived[train.Survived > 0].sum()
Survialcountpercentage=(Survialcount/traintotal)*100
print(Survialcountpercentage)

survivalcountrounded= np.ceil(Survialcountpercentage)

print(" ",survivalcountrounded,"percent survived")

有誰知道我怎么能讓這個工作? 好像火車需要df ,但是.Survived的第二個參數columnname不起作用。

假設它真的是二進制的,那么你需要的只是

def Is_data_imbalanced(df, objectivecolumn):
    return int(df[objectivecolumn].mean() * 100)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM