편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2021.08.12

    split, for 등을 이용해서 서로 형식(?)이 조금 다른 것은 어떤 방식으로 split을 사용 할 수 있을까요?


    안녕하세요. split, for, if문 최근에 연습 중인 입문자 입니다.

    df = pd.DataFrame({"idx5":[ "ex1.x.1", 
    "ex1.x", 
    "ex2.x.2", 
    "ex2.x.3", 
    "ex1.x.2", 
    "ex2.x", 
    "ex2.x.4", 
    "ex2.x.5", 
    "ex1.x.3", 
    "ex3.x", 
    "ex2.x.6", 
    "ex2.x.7", 
    "ex1.x.4", 
    "ex4.x", 
    "ex2.x.8", 
    "ex2.x.9", 
    "ex1.x.5", 
    "ex5.x", 
    "ex2.x.10", 
    "ex2.x.11", 
    "ex1.x.6", 
    "ex6.x", 
    "ex2.x.12", 
    "ex2.x.13", 
    "ex1.x.7", 
    ]})
    
    for i in range(len(df)-1) : 
        df.at[i+1, "idx6"], df.at[i+1, "idx7"], df.at[i+1, "idx8"] = df.at[i+1, "idx5"].split(".")
    
     ValueError: not enough values to unpack (expected 3, got 2)
    

    위의 에러 코드가 나오는데요. 뭔가 "." 개수가 달라도 split을 할 수 있는 방법이 있을까요? 궁극적으로는 아래 처럼 idx5만 가지고 idx6, idx7, idx8을 만들고 싶어서요. idx8의 빈공간에는 임의의 문자를 동일하게 넣어주셔도 상관은 없습니다..!

    idx5       idx6 idx7  idx8
    ex1.x.1     ex1 x   1
    ex1.x       ex1 x   
    ex2.x.2     ex2 x   2
    ex2.x.3     ex2 x   3
    ex1.x.2     ex1 x   2
    ex2.x       ex2 x   
    ex2.x.4     ex2 x   4
    ex2.x.5     ex2 x   5
    ex1.x.3     ex1 x   3
    ex3.x       ex3 x   
    ex2.x.6     ex2 x   6
    ex2.x.7     ex2 x   7
    ex1.x.4     ex1 x   4
    ex4.x       ex4 x   
    ex2.x.8     ex2 x   8
    ex2.x.9     ex2 x   9
    ex1.x.5     ex1 x   5
    ex5.x       ex5 x   
    ex2.x.10    ex2 x   10
    ex2.x.11    ex2 x   11
    ex1.x.6     ex1 x   6
    ex6.x       ex6 x   
    ex2.x.12    ex2 x   12
    ex2.x.13    ex2 x   13
    ex1.x.7     ex1 x   7
    
    
  • 프로필 물먹는하마님의 편집
    날짜2021.08.12

    split, for 등을 이용해서 서로 형식(?)이 조금 다른 것은 어떤 방식으로 split을 사용 할 수 있을까요?


    안녕하세요. split, for, if문 최근에 연습 중인 입문자 입니다.

    df = pd.DataFrame({"idx5":[ "ex1.x.1", "ex1.x", "ex2.x.2", "ex2.x.3", "ex1.x.2", "ex2.x", "ex2.x.4", "ex2.x.5", "ex1.x.3", "ex3.x", "ex2.x.6", "ex2.x.7", "ex1.x.4", "ex4.x", "ex2.x.8", "ex2.x.9", "ex1.x.5", "ex5.x", "ex2.x.10", "ex2.x.11", "ex1.x.6", "ex6.x", "ex2.x.12", "ex2.x.13", "ex1.x.7", ]})

    for i in range(len(df)-1) : 
        df.at[i+1, "idx6"], df.at[i+1, "idx7"], df.at[i+1, "idx8"] = df.at[i+1, "idx5"].split(".")
    

    ValueError: not enough values to unpack (expected 3, got 2)

    위의 에러 코드가 나오는데요. 뭔가 "." 개수가 달라도 split을 할 수 있는 방법이 있을까요? 궁극적으로는 아래 처럼 idx5만 가지고 idx6, idx7, idx8을 만들고 싶어서요. idx8의 빈공간에는 임의의 문자를 동일하게 넣어주셔도 상관은 없습니다..!

    idx5       idx6 idx7  idx8
    ex1.x.1     ex1 x   1
    ex1.x       ex1 x   
    ex2.x.2     ex2 x   2
    ex2.x.3     ex2 x   3
    ex1.x.2     ex1 x   2
    ex2.x       ex2 x   
    ex2.x.4     ex2 x   4
    ex2.x.5     ex2 x   5
    ex1.x.3     ex1 x   3
    ex3.x       ex3 x   
    ex2.x.6     ex2 x   6
    ex2.x.7     ex2 x   7
    ex1.x.4     ex1 x   4
    ex4.x       ex4 x   
    ex2.x.8     ex2 x   8
    ex2.x.9     ex2 x   9
    ex1.x.5     ex1 x   5
    ex5.x       ex5 x   
    ex2.x.10    ex2 x   10
    ex2.x.11    ex2 x   11
    ex1.x.6     ex1 x   6
    ex6.x       ex6 x   
    ex2.x.12    ex2 x   12
    ex2.x.13    ex2 x   13
    ex1.x.7     ex1 x   7