ABOUT ME

코딩을 좋아하는, 배움을 즐기는 내가 만들어나가는 공간

Today
Yesterday
Total
  • pandas 데이터 프레임 열 추가 삭제 필터링 하기
    Machine Learning/pandas 2023. 8. 23. 01:52
    반응형

    오늘은 데이터프레임의 열을 조건으로 필터링하고 값을 바꿔보는 등 여러 문법을 적용해볼겁니다.

    오늘도 우리에게 도움을 줄 cars.csv파일을 불러옵니다.

     

    처음으로 해볼 것은 cars의 origin속성에서 europe에 해당하는 값을 필터링해볼겁니다.

    이를 위한 조건을 mask1에 할당하고 불러오면 bool형태로 출력되는 것을 알 수 있습니다.

    mask2는 나중에 사용해볼건데 mpg속성의 값이 20보다 작은 조건을 나타내고 있습니다.

     

    그리고 europe라는 변수에 원본 데이터인 cars에다가 대괄호 안에 mask1조건을 집어넣으면

    우리가 원하는 조건에 맞는 데이터가 필터링되었음을 알 수 있습니다.

     

    다중조건을 거는 방법도 쉽습니다.

    우리가 앞서 설정한 mask1조건과 mask2 조건을 동시에 만족하는 데이터를 얻으려면

    대괄호 안에 비교연산자를 사용하여 조건을 넣어주면 됩니다.

    동시에 만족하는 것은 AND연산인 '&', 둘 중에 하나만 만족하길 원하면 OR연산에 해당하는 '|'를 넣어주면 됩니다.

     

    특정 열에서 사이에 해당하는 값을 얻는 방법도 간단합니다.

    원하는 속성에 .으로 접근하여 between함수를 써주면 됩니다.

    파라미터로 최소, 최대 값을 넣어줄 수 있는데 이 두 값을 모두 포함한 결과가 반환됩니다.

     

    아래에서 쓰인 isin함수는 single 혹은 list를 인자로 받으며

    안에 값이 있으면 True 없으면 False를 반환합니다.

    우리는 맨 앞에 ~기호로 NOT연산자를 사용하였으므로 결과는 73,74를 제외한 값이 출력됩니다.

    그리고 loc으로 접근해서 두번째 값에 mpg,name을 넣어주었기에 이 두 열만 출력됩니다.

     

    열을 삭제할 땐 drop을 사용합니다. 안에 파라미터로 columns나 index를 사용할 수 있습니다.

    만약 특정 값을 삭제하고싶다면 labels를 사용하면 되고 꼭 axis와 함께 사용하여

    pandas에게 행인지 열인지 알려주어야 합니다.

    위에 사용한 삭제문장은 cars.drop(labels=['displacement','cylinder'], axis='1')와 같은 역할을 합니다.

     

    속성에서 특정 값을 제외한 값만 출력하고 싶을 때 !=를 사용하여 출력할 수도 있습니다.

     

    마지막으로 속성을 추가하는 방법입니다.

    원본 데이터프레임에 대괄호를 쓰고 속성으로 사용할 이름을 입력해줍니다.

    그리고 속성 값을 하나의 상수로 넣는다면 모든 행이 같은 값을 가지게 되고

    위처럼 특정 속성값을 다루어 집어넣는다면 pandas는 벡터연산을 지원하기 때문에 각기 다른 값을 가집니다.

    그리고 우리가 생성한 속성은 원본 데이터프레임의 가장 마지막 열에 추가됩니다.

    반응형

    댓글

Designed by Tistory.