replace를 사용해서 제가원하는 문자열이 아니면 모두 nan값으로 치환하는 방법을 알고싶습니다

조회수 685회
s3 = Series(['서울','.','대전',',','대구','!','부산'])


s3.replace(''서울','대전','대구','부산'',np.nan)

서울 , 대전, 대구, 부산을 nan값으로 변경하는법은 알겠는데, 서울 대전 대구 부산을 제외한 모든것은 전부 nan값으로 변경하는법을 잘모르겠습니다.

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기
    >>> import pandas as pd
    >>> s = pd.Series("서울 대전 대구 ! 부산".split())
    >>> s
    0    서울
    1    대전
    2    대구
    3     !
    4    부산
    dtype: object
    >>> s[s.isin("서울 대전 대구 부산".split())]
    0    서울
    1    대전
    2    대구
    4    부산
    dtype: object
    
    >>> s[!s.isin("서울 대전 대구 부산".split())]
    SyntaxError: invalid syntax
    
    >>> s[not s.isin("서울 대전 대구 부산".split())]
    Traceback (most recent call last):
      File "<pyshell#6>", line 1, in <module>
        s[not s.isin("서울 대전 대구 부산".split())]
      File "C:\PROGRAMS\Python3864\lib\site-packages\pandas\core\generic.py", line 1537, in __nonzero__
        raise ValueError(
    ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
    
    
    >>> s[~s.isin("서울 대전 대구 부산".split())]
    3    !
    dtype: object
    >>> import numpy as np
    >>> s[~s.isin("서울 대전 대구 부산".split())] = np.nan
    >>> s
    0     서울
    1     대전
    2     대구
    3    NaN
    4     부산
    dtype: object
    >>> 
    

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

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

(ಠ_ಠ)
(ಠ‿ಠ)