2017-04-05 3 views
2

팬들/기계 학습을 배우기 위해 Kaggle에서 타이타닉 자습서에 참여하고 있습니다. 나는 두 개의 인수, dataframe 및 열 이름을 사용하는 함수를 만들려면 https://www.kaggle.com/trenzalore888/titanic/titanic-learning팬더 열에 각 값의 백분율을 계산하는 기능

:

여기 내 커널입니다. 이 함수가 각 클래스의 백분율을 계산하기를 원합니다 (바이너리, 즉 0 또는 1이라고 가정).

타이타닉 집합에 대해 특별히 작동하도록 하드 코딩 된이 작업을 수행 할 수 있지만 나중에 사용할 수 있도록 함수를 만들고 싶습니다.

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") 

사람이 알고 있나요 : 아래

AttributeError: 'DataFrame' object has no attribute 'objectivecolumn'

가 작동하는 하드 버전 :

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") 

불행하게도 내가 속성 오류 : 여기

내 실패 시도 이거 작동시킬 수 있니? 열차는 괜찮 으면 df이 걸리지 만 columnname.Survived 일 때 작동하지 않습니다.

+2

시도'objectivecount = DF [objectivecolumn]를 명시 적으로 입력해야하는 필요한 모든 이진입니다 가정 "." 표기법. 속성 액세스는 일반적으로 약해서 .loc 또는 []을 사용해보십시오. – umutto

+1

도움 주셔서 감사합니다! 그것은 위대한 지금 작동합니다. 대신에 []를 사용하는 습관을 갖도록 노력할 것입니다. – trenzalore888

답변

0

정말 당신이 [[objectivecolumn]> 0 df 명령]. 합()`, 그것은 필요

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

도와 주셔서 감사합니다! 그것은 지금 위대한 작품 – trenzalore888

+0

윌, 고마워요! – trenzalore888

관련 문제