전체 글

데이터 시각화 데이터 시각화를 보여주는 전형적인 사례로 앤스콤 4분할 그래프(Anscombe's quartet)가 있다. 영국의 프랭크 앤스콤이 데이터를 시각화하지 않고 수치만 확일할 때 발생할 수 있는 함정을 보여주기 위해 만든 그래프이다. 앤스콤이 지적한 함정과 데이터 시각화의 필요성 앤스콤 4분할 그래프를 구성하는 데이터 집합은 4개의 그룹으로 구성되어 있으며 모든 데이터 그룹은 x, y 열을 가지고 있다. 그런데 이 4개의 데이터 그룹은 각각 평균, 분산과 같은 수칫값이나 상관관계, 회귀선이 같다는 특징이 있다. 그래서 이런 결과만 보고 '데이터 그룹 1, 2, 3, 4의 데이터는 모두 같을 것이다'라고 착가할 수 있다. 바로 이것이 앤스콤이 지적한 '함정'이다. 하지만 각 데이터 그룹을 시각화하..
비밀번호 암호화 POST로 데이터를 등록한 것을 보면 암호화가 되어있지 않아 자칫하면 위험해질 수 있다. 따라서 비밀번호를 암호화하여 관리해야 한다. 기본적인 구조는 salt를 생성하여 hash를 적용하는 것이다. hash를 적용하여 read를 할때 평문을 알아낼 수 없게 만들면 된다. 다음 코드를 보며 알아보자. userSchema.pre('save', function(next){ var user = this; if(user.isModified('password')){ //비밀번호 암호화 시킨다. bcrypt.genSalt(saltRounds, function(err, salt) { bcrypt.hash(user.password, salt, function(err, hash) { if(err) retu..
비밀 정보 보호 mongoDB와 연결을 할 때 ID와 PASSWORD를 소스 안에 적어 연결을 했다. 이를 배포하거나 github에 올린다면 내 서버를 누구나 쓸 수 있게 된다. 그러니 이를 보호해야 한다. config라는 폴더를 만들어서 제약사항을 관리하자. config 폴더안데dev.js라는 파일을 만들어 mongoDB와 연결하는 URL을 관리할 것이다. 만약 배포되지 않은 상태에서 개발할 때 즉, 로컬에서 개발할 때는 이렇게 만들어 놓은 소스를 사용할 수 있지만 클라우드 환경이나 배포된 상태에서는 사용이 불가능할 수 있다. 따라서 클라우드 같은 환경에서는 따로 설정을 해줘야 한다. 환경별로 파일을 구분하여 생성한 뒤, 환경에 따라 exports 되는 모듈을 달리하게 하자. if(process.env..
데이터 처리 열의 자료형을 바꾸거나 새로운 열을 추가하는 방법을 알아보자. print(scientists['Born'].dtype) print(scientists['Died'].dtype) 날짜를 문자열로 저장한 데이터는 시간 관련 작업을 할 수 있도록 datetime 자료형으로 바꾸는 것이 좋다. born_datetime = pd.to_datetime(scientists['Born'], format='%Y-%m-%d') print(born_datetime) died_datetime = pd.to_datetime(scientists['Died'], format='%Y-%m-%d') print(died_datetime) 이제 추가를 해보자. scientists['born_dt'], scientists['d..
시리즈 만들기 판다스의 Series 메서드에 리스트를 전달하여 시리즈를 생성해보자. import pandas as pd s = pd.Series(['banana', 42]) print(s) 인덱스(index)는 보통 0부터 시작한다. 하지만 시리즈를 생성할 때 문자열을 인덱스로 지정할 수 있다. s = pd.Series(['Wes McKinney', 'Creator of Pandas']) print(s) print() s = pd.Series(['Wes McKinney', 'Creator of Pandas'], index=['Person', 'Who']) print(s) 데이터프레임 만들기 데이터프레임을 만들기 위해서는 딕셔너리를 DataFrame 클래스에 전달해야 한다. scientists = pd.D..
통계 계산 기초 데이터를 가지고 몇 가지 기초적인 통계 계산을 해보자. 갭마인더 데이터 집합에서 0~9번째 데이터를 추출한 것이다. print(df.head(n=10)) lifeExp 열을 연도별로 그룹화하여 평균 계산 데이터를 year열로 그룹화하고 lifeExp 열의 평균을 구하면 된다. 데이터프레임의 groupby 메서드에 year 열을 전달하여 연도별로 그룹화한 다음 lifeExp 열을 지정하여 mean 메서드로 평균을 구하자. print(df.groupby('year')['lifeExp'].mean()) lideExp, gdpPercap 열의 평균값을 연도, 지역별로 그룹화 year, continent 열로 그룹화한 그룹 데이터프레임에서 lifeExp, gdpPercap 열만 추출하여 평균을 구..
데이터 추출 head() 메서드를 이용해 데이터프레임에서 가장 앞에 있는 5개의 데이터를 추출하여 출력했다. 데이터를 열 단위로 추출하는 방법과 행 단위로 추출하는 방법을 알아보자. 열 단위 데이터 추출 데이터프레임에서 데이터를 열 단위로 추출하려면 대괄호와 열 이름을 사용해야 한다. 이때 열 이름은 꼭 작은따옴표를 사용해서 지정해야 하고 추출한 열은 변수에 저장해서 사용한다. 이때 1개의 열만 추출하면 시리즈를 얻을 수 있고 2개 이상의 열을 추출하면 데이터프레임을 얻을 수 있다. country_df = df['country'] print(type(country_df)) print(country_df.head()) print(country_df.tail()) 대괄호와 열 이름으로 데이터를 추출하여 co..
hvv_an
이미난