파이썬 if 조건 반환

조회수 738회

예를 들어 한 열(여기서는 'name'이라고 하겠습니다)에 a, b, c, d, e, f, g, h, i .... 등 매우 많은 문자열이 있는 csv 파일이 있습니다.

그 csv 파일을 read한 뒤 if 조건문을 주어서 print하는 것이 아닌 실제 그 조건으로 반환하고 싶습니다 가령 'name'열 중 a,b,c,d가 있을 경우에는 = 1로 반환 그렇지 않은 경우에는 0으로 반환한다고하면 그냥 print 되는 것이 아닌 실제로 read 된 csv 파일에 'name'열 에 있는 문자값들이 모두 0또는 1로 바뀌는 코드를 작성하고 싶습니다. 기초가 없다보니 힘드네요.. 도움주시면 감사하겠습니다.

  • 그냥 csv파일을 읽은 뒤 해당 문자들을 replace 해주면 되는것 아닌가요? 알 수 없는 사용자 2020.1.10 00:01
  • csv파일을 새로 작성해주시면 됩니다. 이때 저장하는 파일 이름을 동일한 파일명으로 하시면 덮어씌워질 겁니다. 알 수 없는 사용자 2020.1.14 15:24

1 답변

  • 요구사항이 되게 이상한데, 이게 원하는 게 맞는지 잘 모르겠네요.

    >>> import pandas as pd
    >>> df = pd.DataFrame({'name':list('abcdefghi')})
    >>> df
      name
    0    a
    1    b
    2    c
    3    d
    4    e
    5    f
    6    g
    7    h
    8    i
    >>> df.to_csv('temp.csv', index=False)
    >>> df1 = pd.read_csv('temp.csv')
    >>> df1
      name
    0    a
    1    b
    2    c
    3    d
    4    e
    5    f
    6    g
    7    h
    8    i
    >>> # 'name' 중 'a', 'b', 'c', 'd' 가 있다?
    >>> if set(df1['name']) & set(('a', 'b', 'c', 'd')) == set(('a', 'b', 'c', 'd')):
        df1['name'] = 1
    else:
        df1['name'] = 0
    
    
    >>> df1
       name
    0     1
    1     1
    2     1
    3     1
    4     1
    5     1
    6     1
    7     1
    8     1
    
    >>> df1.to_csv('temp.csv', index=False)
    
    >>> df2 = pd.read_csv('temp.csv')
    >>> df2
       name
    0     1
    1     1
    2     1
    3     1
    4     1
    5     1
    6     1
    7     1
    8     1
    >>> 
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)