다양한 타입의 데이터를 하나의 자료로 표현할 수 있는 시퀀스 자료형 1) 리스트 슬라이싱(slicing) 리스트의 값들은 각각에 해당하는 주소(offset)를 갖는다 그 주소를 기반으로 리스트의 부분값을 슬라이싱하여 가져올 수 있는 기법 index가 처음부터 0,1,2,...로 가는건 누구나 알지만 거꾸로 -1,-2,-3...으로 가는건 아무나 아는 것이 아니다 2) concatenation, repeat, in 리스트도 덧셈 연산으로 concatenation 가능 *연산은 리스트를 반복함(repeat) in연산은 해당 원소가 리스트에 포함되어 있는지 확인 3) change element 리스트 내 원소를 변경 바꾸고 싶은 원소의 인덱스 i..
데이터 수집을 하기 위해 크롤링을 수행하는데 from bs4 import BeautifulSoup from urllib.request import urlopen url = 'https://www.chicagomag.com/Chicago-Magazine/November-2012/Best-Sandwiches-Chicago/' html = urlopen(url) soup = BeautifulSoup(html, 'html.parser') soup 다음과 같이 에러가 난다면 이런 경우 다음과 같이 headers를 다음과 같이 추가해서 크롤링 중이라는 것을 숨겨서 크롤링을 할 수 있다고 한다 from bs4 import BeautifulSoup from urllib.request import urlopen, Req..
일반적인 for loop보다 빠르게 리스트를 생성할 수 있다 위에가 일반적인 for loop 리스트 생성 아래는 list comprehension으로 생성 list comprehension이 조금 더 빠르다 1) 기본형 [ x for x in ] 에서 x를 뽑아서 x를 리스트에 넣어서 생성 2) 이중for문형 [ x+y for x in for y in ] 에서 x를 뽑은 뒤에 에서 y하나씩 뽑아서 x+y를 넣는다 바꿔말하면 for x in for y in .append(x+y) 3) 조건문 if [x for x in if ] 에서 x를 하나씩 뽑는데 에 맞는 경우만 리스트에 넣어준다 4) 조건문 if~else if만 쓰면 for문 뒤에 써야하는데 if~else를 쓰고 싶으면 for문 앞에 쓴다 [x if..
1. 정렬하기 data.sort_values( by = (정렬기준이 되는 칼럼) , ascending =True/False) ascending =True이면 오름차순 정렬이고 ascending = False이면 내림차순 정렬 2. series는 대응하는 원소끼리 수학적 계산이 가능 단, 인덱스가 맞지 않으면 계산이 이상해질 수 있음 3. 통계량계산 data.mean() , data.median(), data.sum(), data.count(), data.std(), data.var(), .... 최빈값은 scipy 모듈을 이용해서 구할 수 있음 from scipy.stats import mode mode_data = mode(data) 4. 결측치 찾기 data.isnull().sum()을 통해 결측치가..
위에 제시된 데이터프레임의 행의 개수를 구할려면 어떻게 해야할까? 434개인건 명백한데 count함수를 이용하면 다음과 같은 결과가 나온다 왜 이런 결과가 나왔을까? 다음은 데이터프레임에 들어간 boston['RM'].unique() array를 len함수를 이용해서 개수를 세어본 결과이다. 그 비밀은 NA값에 있다. 행의 개수를 세야할 때 pd.DataFrame.count()로 데이터프레임의 행의 개수를 셀 수 있는데 count()함수는 NA가 아닌 값만 세는 특징이 있다. 설명을 보면 non-NA값만 개수를 센다고 나와있다. 그래서 NA값을 세야하는지 세면 안되는지에 따라 주의해서 사용해야한다.
1. merge 두개의 데이터 테이블을 하나로 합치는 기능 기본은 pd.merge(df1,df2,on=(기준변수)) left_on=(왼쪽 프레임의 기준변수), right_on=(오른쪽 프레임의 기준 변수) 4,5,7,8이 공통으로 subject_id에 들어있으므로 기준변수를 subject_id라 하면 inner join inner join은 두 데이터 프레임에서 공통된 것을 뽑아오고(기본) full join(outer join)은 기준변수에서 두 데이터 프레임 값 모두 가지고 오고 left join은 왼쪽 데이터 프레임은 모두 가지고오고 오른쪽 데이터프레임에 없는 것은 NaN으로 채워넣음 right join은 오른쪽 데이터 프레임은 모두 가지고오고 왼쪽 데이터프레임에 없는 것은 NaN으로 채워넣음 ind..