전체 글

자료형 다루기 자료형 변환은 데이터 분석 과정에서 반드시 알아야 하는 요소 중 하나이다. 예를 들어 카테고리는 문자열로 변환해야 데이터 분석을 수월하게 할 수 있다. 또 다은 예는 전화번호는 보통 숫자로 저장한다. 하지만 전화번호로 평균을 구하거나 더하는 등의 계산은 거의 하지 않는다. 오히려 문자열처럼 다루는 경우가 더 많다. 데이터를 준비하자. import pandas as pd import seaborn as sns tips = sns.load_dataset("tips") 자료형을 변환하려면 astype 메서드를 사용하면 된다. 다음은 astype 메서드를 사용해 sex 열의 데이터를 문자열로 변환하여 sex_str이라는 새로운 열에 저장한 것이다. tips['sex_str'] = tips['sex..
로그아웃 회원가입과 로그인 기능은 이미 만들었다. 이제 로그아웃 기능을 만들어 보자. 로그인된 유저가 로그아웃을 원한다면 유저의 아이디를 찾아 token을 지워주면 된다. token을 지운다면 clinet가 갖고 있던 token과 일치하는 유저를 찾을 수 없기 때문에 token만 지워도 로그아웃이 된다. 로그아웃 라우터를 우선 만들자. app.get('/api/users/logout', auth, (req, res) => { User.findOneAndUpdate({_id: req.user._id}, {token: ""}, (err, user) => { if(err) return res.json({success: false, err}) return res.status(200).send({ success:..
열과 피벗 데이터프레임의 열은 파이썬의 변수와 비슷한 역할을 한다. 예를 들어 ebola 데이터프레임 열은 사망한 날짜(Date), 발병 국가(Case_Guinea) 등의 데이터를 저장하고 있다. 하지만 이번에 다루는 데이터프레임의 열은 열 자체가 어떤 값을 의미한다. 그러다 보니 데이터프레임의 열이 옆으로 길게 늘어선 형태가 된다. 바로 이것을 '넓은 데이터'라고 한다. 이를 깔끔하게 정리하려면 melt 메서드를 사용해야 한다. melt 메서드의 인자를 정리한 표이다. 퓨 리서치 센터(Pew Research Center)에서 조사한 '미국의 소득과 종교'라는 데이터이다. import pandas as pd pew = pd.read_csv('../data/pew.csv') print(pew.head())..
Auth 기능 어떤 페이지에 로그인된 유저만 사용 가능하게 만들어야 하는 기능이 필요하다. 따라서 로그인하여 Token이 발급된 유저만 사용 가능하게끔 만드는 Auth기능을 만들어야 한다. Cookie에 저장된 token을 decode 우선 auth를 위한 middleware가 필요하니 middleware 폴더를 root에 만든 뒤, auth.js파일을 생성하여 다음과 같이 작성한다. const { User } = require("../models/User"); let auth = (req, res, next) => { //인증 처리 //client cookie token 가져오기 let token = req.cookies.x_auth; //토큰 복호화 & user 찾기 User.findByToken(t..
누락값 누락값은 NaN, NAN, nan과 같은 방법으로 표기한다. 누락값은 0이나 ' '과는 다른 개념이다. 누락값은 말 그대로 데이터 자체가 없다는 것을 의미한다. db에서 null과 같은 개념이다. 따라서 같다는 개념도 없다. from numpy import NaN, NAN, nan print(NaN == True) print() print(NaN == False) print() print(NaN == 0) print() print(NaN == ' ') 또한 값 자체가 없기 때문에 NaN끼리 비교해도 같지 않다. print(NaN == NaN) print() print(NaN == nan) print() print(NaN == NAN) print() print(nan == NAN) 누락값을 확인하려..
로그인 기능 만들기 우선 로그인을 하려면 요청된 이메일이 데이터베이스에 있는지 찾아야 한다. 그다음 요청된 비밀번호와 같은지 여부를 판단한다. 만약 둘 다 일치한다면 Token을 생성하면 된다. 이메일 확인하기 우선 엔드포인트는 './login'으로 하고 post 메서드를 하나 추가한다. 그 후 몽고DB 메서드인 findOne 메서드를 사용하여 일치하는 email을 찾는다. 만약 존재하지 않는다면 실패 메시지를 전달한다. 일치하는 email이 있다면 비밀번호를 비교한다. app.post('/login', (req, res) => { //요청된 이메일을 DB에서 찾는다 User.findOne({ email: req.body.email }, (err, user)=> { if(!user){ return res..
분석하기 좋은 데이터 분석하기 좋은 데이터란 데이터 집합을 분석하기 좋은 상태로 만들어 놓은 것을 말한다. 데이터 분석 단계에서 데이터 정리는 아주 중요하다. 실제로 데이터 분석 작업의 70% 이상을 차지하고 있는 작업이 데이터 정리 작업이다. 분석하기 좋은 데이터는 다음 조건을 만족해야 하고 이러한 데이터를 Tidy Data라고 한다. 데이터 연결 예를 들어 주식 데이터를 분석하는 과정에서 '기업 정보'가 있는 데이터 집합과 '주식 가격'이 있는 데이터 집합이 있을 때 '첨단 산업 기업의 주식 가격에 대한 데이터'를 보려면 어떻게 해야 할까?? 일단 기업 정보에서 첨단 기술을 가진 기업을 찾아야 한다. 그리고 이 기업들의 주식 가격을 찾아야 한다. 그런 다음 찾아낸 2개의 데이터를 연결하면 된다. 이렇..
hvv_an
이미난