본문 바로가기

삭제

[머신러닝] 데이터프레임 : Null 값이 있는 행 확인하고, 삭제하는 방법 머신러닝 학습을 하기 전 데이터 전처리를 할 때, 데이터프레임 상에서 Null 값이 있는 행이 있는지 확인하고, 또 존재한다면 삭제하고 싶을 때, 코드를 어떻게 작성해야 하는지 아래 코드를 보면서 살펴보도록 하겠습니다. 1. Null 값 확인하기 먼저, 다음과 같이 Null 값이 있는 데이터프레임이 있다고 가정해보겠습니다. # itempricecount 0water1000.01.0 1milk2000.0NaN 2coffee3000.02.0 3adeNaN1.0 4latte5000.03.0 5tea6000.02.0 위 데이터프레임을 보면 각각 1행과 3행에 NaN 으로 Null 값이 있는 것을 확인할 수 있는데요, 이 데이터프레임의 데이터는 매우 작아서 어디에 Null 값이 있는지 바로 알 수 있지만, 데이터.. 더보기
[웹크롤링] 검색창에 입력된 텍스트 지우는 방법 - clear() 만약 검색창이 있는 페이지 또는 쇼핑몰 사이트에서 원하는 검색어를 입력한 뒤, 해당 페이지를 크롤링할 때, 검색창에 텍스트를 입력해야 합니다. 하지만 여러 키워드로 검색을 할 때, 기존의 키워드를 지워야 하는데요, 이때 검색창에서 텍스트를 지우는 방법에 대해서 알아보도록 하겠습니다. 예시로, 네이버 홈페이지에 '여행'이라는 검색어를 입력하는 코드를 작성해보겠습니다. (selenium과 크롬 드라이버를 사용한다는 가정하에 설명드리겠습니다.) from bs4 import BeautifulSoup from selenium import webdriver import time path = "c:/temp/chromedriver_240/chromedriver.exe" #chomedriver의 경로 driver = .. 더보기
[웹크롤링] 텍스트 크롤링 - '\n' 와 같이 불필요한 텍스트 없애기 글이나 뉴스 기사 등을 크롤링할 때, 텍스트 앞 뒤로 '\n' 라는 문자가 같이 출력되는 것을 종종 볼 수 있는데요, '\n'은 줄 바꿈을 의미하는 문자로, 의미가 없기 때문에 삭제하고 저장하는 것이 좋습니다. 한편, '\n'이라는 문자를 없애기 위해 replace 함수를 사용할 수 있는데요, replace 함수는 특정 문자를 다른 문자 또는 공백으로 대체하는 기능을 한답니다. 따라서 '\n' 라는 글자를 아무 문자가 들어있지 않은 ""(공백) 으로 바꾼다면 해당 문자가 삭제되는 것과 같아지게 됩니다. replace() 함수는 replace("바꾸기 전 문자", "바꾼 후의 문자") 로 코드를 작성하면 되는데요, 아래와 같이 '\n' 이 포함된 문자열 str1이 있다고 가정할 때, replace를 이용하.. 더보기
[웹크롤링] 두번씩 크롤링 되는 텍스트, 중복 제거하는 방법 - set() 적절한 태그를 찾아 크롤링을 했는데도, 동일한 텍스트가 두 번씩 추출되는 경우가 있을 수 있는데요, 이러한 경우는 속성 태그에 있는 텍스트가 함께 출력되었을 수 있습니다. 따라서 다시 적절한 태그와 속성값을 이용해 텍스트를 크롤링하는 것이 좋은데요, 이 방법 말고도 set() 함수를 이용하여 쉽게 해결할 수 있습니다. set() 함수는 리스트 안에서 중복된 데이터를 제거해주는 함수로, 만약 두 번씩 텍스트가 크롤링되어서 저장되었다면, set() 함수를 통해 중복된 데이터를 모두 제거할 수 있답니다. 먼저, 다음과 같이 텍스트를 크롤링해서 얻은 리스트가 있다고 가정해보겠습니다. list1 = ['사과', '사과', '딸기', '딸기', '바나나', '바나나', '수박', '수박', '포도', '포도'] 위.. 더보기
[웹크롤링] 크롤링해서 얻은 텍스트, 앞 뒤 공백 제거하려면? - strip 크롤링을 하면 주로 텍스트를 추출하게 되는데요, 이때 추출한 텍스트 앞, 뒤로 공백이 같이 추출될 수 있습니다. 이러한 경우 공백을 제거한 뒤 저장하는 것이 나중에 분석 및 처리를 위해서도 좋은데요, 어떻게 하면 앞, 뒤 공백을 제거할 수 있는지 살펴보도록 하겠습니다. - strip() : 문자열 앞 뒤 공백 제거하기 먼저, 다음과 같이 뉴스 기사 제목을 크롤링해서 저장한 리스트가 있다고 가정해보겠습니다. news = [' KBS \'절반 억대연봉\' 사과에…나경원 "수신료인상 반대" ', ' SK하이닉스 성과급 불만에 최태원 "작년 연봉 전부 반납" 선언', " 안철수-금태섭 채널 열렸다…野 '계단식 단일화론' 급물살(종합)" , '與, 법관탄핵안 161명 공동발의…4일 국회통과 유력(종합) ', ' .. 더보기
[데이터분석] 데이터프레임 : 특정 조건 만족하는 행 삭제하기 - drop() 이전 글에서는 특정 조건을 만족하는 행을 추출하고, 해당되는 인덱스를 반환하는 방법에 대해서 살펴보았는데요, 이번 글에서는 특정 조건을 만족하는 행을 삭제하는 방법에 대해서 살펴보도록 하겠습니다. 1. 특정 조건 만족하는 행의 인덱스 찾기 특정 조건을 만족하는 행을 삭제하기 위해선, 해당되는 행의 인덱스를 알아야 이를 이용해서 삭제할 수 있는데요, 먼저, 인덱스를 찾는 방법에 대해서 살펴보도록 하겠습니다. 아래와 같은 데이터 프레임이 있다고 가정할 때, tempitemcountpricerating 0hotcoffee130004.5 1icejuice540003.0 2iceade250004.0 3hotmilk130002.5 4hottea340003.0 5icewater210004.5 만약 'price' 칼럼.. 더보기
[데이터분석] 데이터프레입 : 중복된 행 삭제 - drop_duplicates 이전 글에서는 데이터프레임에서 중복된 행이 있는지 확인하고, 중복된 행이 몇 개 있는지 구하는 방법에 대해서 살펴보았는데요, 이번 글에서는 중복된 행을 삭제하는 방법에 대해서 설명하도록 하겠습니다. 1. drop_duplicates() : 중복된 행 삭제하기 먼저, 다음과 같이 중복된 데이터가 있는 데이터프레임이 있다고 가정해보겠습니다. tempitemcountprice 0hotcoffee13000 1icejuice34000 2iceade25000 3hotcoffee13000 4hottea34000 5icewater21000 6icejuice34000 위 데이터 프레임을 보면, 3번째 행은 0번재 행과 중복, 6번째 행은 1번째 행과 중복됩니다. 이는 duplicated() 함수를 통해서 아래 코드처럼 .. 더보기
[데이터 분석] 데이터 프레임 : 결측값(NaN) 있는 행/열 삭제하기 - dropna() 데이터분석을 하기 전 데이터 전처리를 할 때, 결측값(NaN)이 있는 항목은 다른 값을 넣어주던가 해당 행을 삭제하는 것이 좋은데요, 만약, 결측값이 들어있는 행 전체를 삭제하고 싶다면 dropna() 함수를 사용하면 됩니다. 1. dropna() : 결측값이 들어있는 행 삭제하기 pandas 라이브러리에서는 결측값이 들어있는 행을 삭제하는 함수를 제공하는데요, 바로 dropna() 함수입니다. 먼저, 다음과 같은 데이터프레임이 있다고 가정해보겠습니다. display(df) itemcountpricerating 0coffee1.030004.5 1juice5.040003.0 2ade2.05000NaN 3milk4.020002.5 4tea3.040003.0 5waterNaN10004.5 6coke4.0200.. 더보기
[데이터분석] 데이터프레임 : 특정 칼럼(열) 삭제하기 - drop() 데이터프레임으로 데이터 분석을 할 때, 필요 없는 칼럼은 삭제하는 게 좋은데요, drop() 함수를 사용하면 쉽게 칼럼을 삭제할 수 있습니다. 먼저, 아래와 같은 데이터프레임이 있다고 가정해보겠습니다. import pandas as pd df = pd.DataFrame( {'name': ['coffee', 'tea', 'juice','milk', 'ade'], 'price': [3000, 4000, 5000, 2000, 5000], 'rating': [4, 3.5, 3.7, 3, 2], 'category': [1,2,3,4,4]}) display(df) namepriceratingcategory 0coffee30004.01 1tea40003.52 2juice50003.73 3milk20003.04 4ad.. 더보기
[파이썬] 주피터 노트북(jupyter notebook) : 셀 지우기 & 되돌리기 단축키 1. 셀 지우는 단축키 : command mode >> 'dd' 주피터 노트북을 사용하다 보면 셀을 새로 생성하거나 지울 일이 많은데요, 셀을 지우는 단축키가 있습니다. 우선, 주피터 노트북에는 edit mode와 command mode가 있는데요, edit mode는 왼쪽에 초록색 상태의 cell로 enter를 눌러 코드를 입력할 있는 상태를 말합니다. 반면 command mode는 esc를 누르거나 셀을 마우스로 클릭해서 파란색의 cell이 된 상태를 말하는데요, 셀은 이 edit mode에서 'dd'를 누르면 해당 셀이 삭제됩니다. 즉, edit mode라면 'esc + dd'를 누르고, command mode라면 바로 'dd'를 눌러 셀을 삭제할 수 있습니다. 2. 지운 셀 되돌리는 단축키 : c.. 더보기