-
12/20-Pandas스파르타/TIL(Today I Learned) 2023. 12. 20. 15:32
판다스를 하면서 특정 행만 추출을 하고싶을 때
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] ] 처럼 쓰면 된다.
❕ 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