ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 12/20-Pandas
    스파르타/TIL(Today I Learned) 2023. 12. 20. 15:32

    판다스를 하면서 특정 행만 추출을 하고싶을 때

     

    df

    df [1:3] 을하면 index 1,2가 나와서 Jenny와 Nate가 나오게 된다.

    하지만 다시 df를 출력하면  3개의 행이 나오게 된다.

    이유는 df를 바꿔주지 않았기 때문

    df = df [1:3]를 하면 이제 df를 출력하면 2개의 행만 나온다.


    ❕ 불연속한 row를 추출하고싶다

    슬라이싱은 연속된 데이터를 선택할 때 도움이 되는 기능이고

    불 연속한 데이터를 원하면  loc를 사용한다.

    loc = location이다.

    사용법은 df.loc[ [0,2] ] 처럼 쓰면 된다.

    df.loc[ [0,2] ]  = 0과 2를 추출


    ❕ DataFrame에 있는 데이터를 조건에 맞춰서 추출하고싶다!

    그렇다면 조건을 추가해야한다.

    df[ df.age >25 ] 처럼 조건을 안에 넣어주면 된다.

    if 나이가 25 초과이고, nate인 사람을 찾고싶다?

    df[ (df.age >25) & (df.name == 'nate')]   

    하면된다.

     

    iloc라는게 있는데 이는 행!을 조절할 수 있다. 

    loc는 행은 조절 불가능


    filter() 함수에 대해 알게되었다.

    filter를 쓰면 조금 더 쉽게 된다.

    df_fitered = df[  [ 'name' ,'age' ]  ]  <<< filter를 안 쓰면 이렇게 해야하지만

    df.filter(items = ['name','age'])를 하면 동일한 결과를 얻게 된다.

    filter() 안에는 items도 들어갈 수 있지만

    SQL에서 사용한 것과 같이 like= 'a' 처럼 a로 시작하는 데이터를 찾을 수도 있고

    regex = 'b'로 마지막에 b가 있는 것을 찾을 수도 있었다.


    drop()함수를 쓰면  데이터를 삭제할 수 있다.

    만일 values값이 아닌  Column을 삭제하려고 하면

    drop( , axis = 1)을 해줘야한다.

    axis =1이  column을 의미하는 것이기 때문이다.

    또한 inplace =True라고 drop() 괄호안에 쓰면

    재 할당을 안하고도 사용할 수 있다.

    이 말은  df.drop(['John','Nate'],inplace =True)

    df= df.drop(['John','Nate'])  두개가 같은 코드라는 것이다.

    좀 더 간결해진다.

     


    SQL에서 보던 문법을 보니 반가웠고

    조건에 따른 행과 열을 추출하는 법을 알게되었다.

    또한 프로젝트를 진행하면서

    데이터 전처리를 하고 있는데 여러가지 찾아보면서

    배우고 있는중이다. 어렵다 

    '스파르타 > TIL(Today I Learned)' 카테고리의 다른 글

    12/22  (0) 2023.12.22
    12/21  (0) 2023.12.21
    12/19 - pandas  (1) 2023.12.19
    12/18  (0) 2023.12.18
    12/17 WIL  (0) 2023.12.17
Designed by Tistory.