분류 전체보기

그래프 그리기 ax = plt.subplots() ax = tips['total_bill'].plot.hist() 우선 시리즈에 있는 plot 속성에 정의된 hist 메서드를 사용하여 히스토그램을 그릴 수 있다. 투명도를 조절하려면 hist 메서드의 alpha, bins, ax 인자를 사용하면 된다. fig, ax = plt.subplots() ax = tips[['total_bill', 'tip']].plot.hist(alpha=0.5, bins=20, ax=ax) 밀집도, 산점도 그래프, 육각 그래프는 각각 kde, scatter, hexbin 메서드를 사용하면 된다. fig, ax = plt.subplots() ax = tips['tip'].plot.kde() fig, ax = plt.subplot..
단변량 그래프 그리기 - 히스토그램 seaborn 라이브러리를 sns라고 하자. import seaborn as sns tips = sns.load_dataset("tips") ax = plt.subplots() ax = sns.distplot(tips['total_bill']) ax.set_title('Total Bill Histogram with Density Plot') subplots 메서드로 기본 틀을 만들고 distplot 메서드에 total_bill 열 데이터를 전달하여 히스토그램을 그릴 수 있다. 이때 distplot 메서드를 사용하면 히스토그램과 밀집도 그래프를 같이 그린다. 만약 밀집도 그래프를 제외하고 싶다면 kde 인잣값을 False로 설정하면 된다. 밀집도 그래프만 나타내고 싶다면..
기초 그래프 그리기 seaborn 라이브러리에는 tips라는 데이터 집합이 있다. tips 데이터 집합은 어떤 식당에서 팁을 지불한 손님의 정보를 모아둔 것이다. 데이터 불러오기 tips = sns.load_dataset("tips") print(tips.head()) print(type(tips)) 위의 데이터로 히스토그램을 그려보자. 히스토그램은 데이터프레임의 열 데이터 분포와 빈도를 살펴보는 용도로 자주 사용하는 그래프이다. 이때 데이터프레임의 total_bill, tip 등의 열을 변수라고 부르기도 한다. 그리고 변수를 하나만 사용해서 그린 그래프를 '일변량 그래프'라고 부른다. fig = plt.figure() axes1 = fig.add_subplot(1, 1, 1) 기본 틀을 만든다. axe..
데이터 시각화 데이터 시각화를 보여주는 전형적인 사례로 앤스콤 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
'분류 전체보기' 카테고리의 글 목록 (47 Page)