DataFrame 생성
1. 중복된 행 조회 및 삭제duplicated, drop_duplicates 함수를 이용해보자
Show
name이 정국인 행과 똑같은 행이 3번째에 또 나와 True값이 나왔다.
subset을 사용해 특정 열 'age'만 보고 같은 행이 있는지 Boolean을 통해 알려준다.
위의 결과값에서 알 수 있듯이 나이와 혈액형을 기준으로 중복된 행은 3번째 행인 것을 알 수 있다.
[Output] nameageblood정국24A진28B태형26O남준26AB
[Output]
옵션 keep = 'first'를 주면 중복된 값이 처음으로 나오는 행만 남겨두고 삭제하라는 의미이다. replace, apply 함수를 이용해보자
[Output] nameageblood정국24A슈가28B태형26O정국24A남준26AB
주로 저는 이 방법을 많이 사용하는데 그 이유는 단지 값을 일일이 replace처럼 바꾸는게 아니라 열을 원하는 방향으로 한 번에 변경해주기 때문이다.
[Output] nameageblood정국27A슈가31B태형29O정국27A남준29AB
age가 3씩 증가함을 볼 수 있다. 0[Output] nameageblood정국 귀여워27A슈가 귀여워31B태형 귀여워29O정국 귀여워27A남준 귀여워29AB
1[Output] nameageblood정국 귀여워127A슈가 귀여워131B태형 귀여워129O정국 귀여워127A남준 귀여워129AB
그래서 만약 BTS.applymap(lambda x : x + 100)을 사용하면 데이터프레임 전체에 숫자 100을 더할려고 할 것이다. 컬럼값을 바꿀 때, for 문으로 바꾸려고 하시는분들이 꽤 계실 것이다. 필자 또한 처음에 for문으로 일일이 바꾸어주었는데, 다른 프로그래밍 언어라면 그렇게 하겠지만, 파이썬은 진짜 웬만하면 다 만들어놓은게 많다. (그리고 만들어진 라이브러리들은 C++같은 저레벨언어로 만들어졌기 때문에 실행시간이 훨씬 빠르다.) 판다스를 사용한다 -> 판다스 객체에서 무엇인가 하고싶다 -> 판다스에서 제공할 것이다 이러한 흐름대로 의식을 진행시킨다면, 저처럼 개고생하는 일은 없으실 것이다. 이 포스팅에서는, 아래의 내용을 다룰 것이다. # Pandas 에서 조건에 맞는 컬럼에서 단일값 바꾸기 # Pandas 에서 조건에 맞는 컬럼에서 여러값 바꾸기 # Pandas 에서 조건에 맞는 컬럼에서 단일값 바꾸기# 예시 데이터셋 dest_loc 컬럼에서 4행의 '대명동'을 '홍대'로 바꾸는 법은 아래와 같다.
# Pandas 에서 조건에 맞는 컬럼에서 여러값 바꾸기# 예시 데이터셋 이번에는, dest_loc과 boarding_loc에 괄호<(,)> 를 포함한 값을 모두 괄호안의 값으로 변경하는 법이다. # 아래 코드는 추천하지 않는 형식의 코드(For문)이다 (제가 삽질했던 코드이다.. ㅠㅠㅠ) 240만건 기준 대충 10분(수행시간)은 걸렸던것 같다...
# 아래는 판다스에서 제공하는 apply 메소드를 이용한 매우 강추하는 방법이다 (연산속도가 말도안되게 빠르다...) 240만건 기준 1분(수행속도)도 안걸린것 같다... ㅠㅠ 공백까지 지우려면 위의 방법으로는 연산속도가 더 증가하게되는데, apply로 아주 간단히... 가능하다 ㅠㅠ |