2017-11-13 7 views
-1

공통점이있는 입력 데이터 프레임의 행을 수집하는 데이터 프레임을 만들기 위해 루프를 만들고 싶습니다. 내 문제 : 내가 함수를 적용하면 출력 데이터 프레임이 비어 있습니다 ... 아직 루프에서 인쇄 (출력)와 함께 프로그램이 작동하는 것을 볼 수 있습니다 ... 이해가 안 돼요, 반환 위치를 변경하려고했지만 작동하지 않는 경우함수가 빈 데이터 프레임을 반환합니다.

도움을 주셔서 감사합니다.

def group (dataframe, identifiant, output): 
    for i in range(len(identifiant)): 
     ident = identifiant.loc[i,"IDCTV"] 
     # print(ident) 


     for j in range(len(dataframe)): 
      if dataframe.loc[j,"IDCONTREVENANT"] == ident: 
       di = dataframe.loc[j, "DATE_INFRACTION"] 
       nt = dataframe.loc[j,"NOTRAIN"] 
       genre = dataframe.loc[j,"CODEETATCIVIL"] 
       age = dataframe.loc[j,"AGE"] 
       # print(di, nt, genre, age) 

      for k in range(len(dataframe)): 
       if k != j : 
        if dataframe.loc[k,"DATE_INFRACTION"] == di and dataframe.loc[k,"NOTRAIN"] == nt: 
         idgroup = dataframe.loc[k,"IDCONTREVENANT"] 
         genreidgroup = dataframe.loc[k,"CODEETATCIVIL"] 
         ageidgroup = dataframe.loc[k,"AGE"] 
         output = output.append({ "IDREF" : ident ,"CODEETATCIVILREF" : genre,"AGEREF" : age ,"IDCTV" : idgroup,"CODEETATCIVILCTV" : genreidgroup,"AGECTV" : ageidgroup}, ignore_index = True) 
         print(output) 
    return output 

group(df,IDCTV,df_groups) 

print(df_groups) 
+0

코드와 정확히 같습니까? def line 아래 모든 것을 들여 쓰기해야하기 때문입니다. – SuperStew

+0

thk 's Answer 그렇습니다. 내 루프가 루프에 있기 때문에 def line 아래 모든 것을 들여 쓸 수 없습니다. – PierreK

+0

왜 들여 쓰기가 금지됩니까? 파이썬은 함수 안에있는 줄을 들여 쓰기를 요구한다. – SuperStew

답변

0

나는 당신이 group funciton를 호출하고 모든 계산을하고있는 지금

group(df,IDCTV,df_groups) 

df_groups = group(df,IDCTV,df_groups) 

을 변경하려는 생각하지만, 당신은 저장하지 않는 어디서든 출력 할 수 있습니다. 따라서 print(df_groups)을 실행하면 함수를 호출하기 전의 내용이 인쇄됩니다.

+0

고맙습니다. – PierreK