본문 바로가기
728x90

우공이산250

[빅데이터분석기사 실기][작업형1] 값을 대체하기 (replace) 이번에는 pandas의 replace 함수를 이용하여 값을 대체해 보겠습니다. 딕셔너리를 이용해서 값을 여러개 대체할 수도 있고, 단일 값을 변경하는 경우에는 변경전, 후 값만 입력하여 변경도 가능합니다. import pandas as pd # 예제 데이터프레임 생성 data = {'A': [1, 2, 3, 4, 5], 'B': ['apple', 'banana', 'apple', 'cherry', 'banana']} df = pd.DataFrame(data) # 'B' 컬럼의 값을 변경하기 전 출력 print("Original DataFrame:") print(df) # 'B' 컬럼의 값을 변경하여 새로운 데이터프레임 생성 df_replaced = df.replace({'apple': 'orange', .. 2023. 5. 26.
[빅데이터분석기사 실기][작업형1] 분위수 구하고 값을 대체하기 (np.quantile(), np.clip()) 분위수(Quantiles)는 데이터를 일정한 비율로 나누는 기준점을 의미합니다. 주어진 데이터의 분포를 파악하고, 데이터의 상대적 위치를 알아보기 위해 사용됩니다. 일반적으로 백분위수(Percentiles)를 많이 사용합니다. 백분위수는 데이터를 100개의 동등한 부분으로 나눈 것으로, 데이터의 분포를 1부터 100까지의 백분위로 표현할 수 있습니다. 그리고 이런 분위수 기준으로 상, 하위값을 분위수로 대체하는 방식으로 이상치를 제거하기도 합니다. 아래는 이에 대한 간단한 예제입니다. import numpy as np # 예제 데이터 배열 생성 data = np.array([10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100]) # 상위 75% 값을 구하는 예제 uppe.. 2023. 5. 26.
더닝-크루거 효과(Dunning–Kruger effect) 회사 임원 한 분의 블로그에서 더닝-크루거(Dunning–Kruger effect) 효과를 알게 되었습니다. 더닝 크루거 효과는 자신의 능력을 과대평가하는 현상을 말합니다. 이 효과는 1999년 아서 더닝과 크리스티안 크루거가 발표한 논문에서 처음으로 소개되었습니다. 이들은 자신의 능력을 과대평가하는 사람들이 실력이 부족한 사람들일 가능성이 더 높다는 것을 발견했습니다. 더닝 크루거 효과가 발생하는 이유는 여러 가지가 있습니다. 첫째, 사람들은 자신의 능력에 대해 잘 모르는 경우가 많습니다. 둘째, 사람들은 자신의 능력을 객관적으로 평가하는 데 어려움을 겪습니다. 셋째, 사람들은 자신의 능력을 과대평가하는 데 도움이 되는 편향에 빠지기 쉽습니다. 더닝 크루거 효과와 관련된 유명한 그래프가 있는데요. 더닝.. 2023. 5. 26.
[빅데이터분석기사 실기][작업형1] 결측치 제거 및 그룹화 앞서 결측치를 대체하는 방법을 알아보았습니다. 이번에는 dropna()를 사용하여 결측치가 존재하는 행을 삭제하는 방법입니다. 그리고, groupby로 데이터를 그룹화하고, index가 2개 이상인 경우에 값을 선택하는 방법까지 알아보겠습니다. import pandas as pd #샘플 데이터 만들기 df = pd.DataFrame({'value': [1, 2, None, 4, 5, 6], 'ind1': ['a', 'a', 'b', 'b', 'c', 'c'], 'ind2': [1, 2, 1, 2, 1, 2]}) #결측치 확인 df.isna().sum() #결측치 제거 df[~df['value'].isna()] #groupby로 멀티인덱스 만들기 df_grp=df.groupby(['ind1','ind2'].. 2023. 5. 24.
[빅데이터분석기사 실기][작업형1] 왜도와 첨도, np.log1p() 왜도 및 첨도는 데이터 세트의 형태 및 분포에 대한 정보를 제공하는 통계값입니다. 왜도(Skewness): 왜도는 분포의 비대칭성을 측정합니다. 양의 왜도는 분포의 꼬리가 오른쪽으로 치우쳐 있음을 의미하고 음의 왜도는 꼬리가 왼쪽으로 치우쳐 있음을 의미합니다. 왜도 값 0은 완벽하게 대칭적인 분포를 나타냅니다. 첨도(Kurtosis): 첨도는 분포의 정점 또는 평탄도를 측정합니다. 정규 분포와 비교하여 데이터에 두꺼운 꼬리(leptokurtic) 또는 가벼운 꼬리(platykurtic)가 있는지 여부를 알려줍니다. 첨도 값 3은 정규 분포를 나타냅니다. 양의 첨도는 꼬리가 두꺼울수록 더 뾰족한 분포를 나타내고, 음의 첨도는 꼬리가 더 가늘고 평평한 분포를 나타냅니다. 데이터 세트의 로그를 취할 때 왜도 .. 2023. 5. 24.
[빅데이터분석기사 실기][작업형1] map()을 이용하여 결측치 처리하기 Python에는 데이터의 결측치(누락된 값)를 처리하는 여러 가지 방법이 있습니다. 일반적으로 사용되는 몇 가지 방법은 다음과 같습니다. 결측치 삭제: dropna() 함수를 사용하여 결측치가 포함된 행 또는 열을 제거할 수 있습니다. axis 매개 변수를 지정하면 결측치가 있거나 특정 조건을 충족하는 행(axis=0) 또는 열(axis=1)을 삭제할 수 있습니다. 결측치 채우기: fillna() 함수를 사용하여 결측치를 지정된 값으로 채울 수 있습니다. 결측치를 상수 값으로 채우거나 전방 채우기(ffill), 후방 채우기(bfill) 또는 보간과 같은 다양한 방법을 사용하여 인접 값을 기반으로 누락된 값을 채우도록 선택할 수 있습니다. 결측값 대치: 대치에는 다른 관찰된 값을 기반으로 결측값을 추정하는.. 2023. 5. 24.
[빅데이터분석기사 실기][작업형1] 반올림, 올림, 내림, 버림의 차이 Python에서 round, floor, ceil 및 trunc 함수의 차이점을 짚고 넘어가겠습니다. numpy와 math 라이브러리를 사용할 수 있는데, 사용방법은 비슷합니다. 여기서는 양수와 음수를 모두 비교하기 위해 numpy를 사용했습니다. round: round() 함수는 숫자를 지정된 소수 자릿수로 반올림하는 데 사용됩니다. 기본적으로 가장 가까운 짝수로 반올림됩니다. 예를 들어 round(3.7)은 4로 반올림되고 round(3.2)는 3으로 반올림됩니다. ceil: 역시 수학 모듈에 있는 ceil() 함수는 주어진 숫자보다 크거나 같은 가장 작은 정수를 반환합니다. 항상 반올림합니다. 예를 들어 math.ceil(3.7)은 4를 생성하고 math.ceil(3.2)도 4를 생성합니다. flo.. 2023. 5. 23.
[빅데이터분석기사 실기][작업형1] IQR을 이용한 이상값 탐지 사분위수 범위(IQR)는 데이터 세트에서 이상값을 식별하는 데 사용되는 통계값입니다. 아래와 같은 순서로 이상값을 판별합니다. 1. IQR 계산: IQR은 제3사분위수(Q3)에서 제1사분위수(Q1)를 빼서 구합니다. 수학적으로 IQR = Q3 - Q1입니다. 2. 이상값 경계 정의: IQR에 상수(일반적으로 1.5 또는 3)를 곱하여 이상값을 식별하기 위한 임계값을 결정합니다. 하한은 Q1 - (IQR * 상수)로 정의되고 상한은 Q3 + (IQR * 상수)로 정의됩니다. 3. 잠재적 이상값 식별: 하한선 아래 또는 상한선 위에 있는 모든 데이터 포인트는 잠재적인 이상값으로 간주됩니다. 4. 이상값 처리 또는 조사: 데이터의 특성에 따라 이상값을 제거하거나 누락된 값으로 처리하거나 데이터 품질 문제 또는.. 2023. 5. 23.
"시발" 은 언제부터 욕이었을까? 아이들과 함께 삼성교통박물관에 종종 놀러 갑니다. 삼성교통박물관에는 우리나라 기술로 만든 최초의 자동차 "시-바ㄹ" 차가 있는데요. 처음 이차를 보고 이름 때문에 깜짝 놀랐죠. 아마 많은 분들이 저처럼 놀라셨겠죠. ㅎㅎ 사실은 대한민국 최초로 자동차 생산의 시작이라는 의미의 한자어 ‘시발(始發)’이라고 합니다. 그러면서, '시발'이 최소한 저 차가 생산된 1955년에는 욕이 아닐지 모르겠다는 생각이 들었습니다. 그래서 한번 찾아보았습니다. 시발의 어원은 무엇일까요? 시발은 여자의 성기를 속되게 일컫는 비속어 '씹'의 관형형 '씹할'이 '씨팔'이 되고, 이것이 좀 더 쉬운 발음으로 변형되어 '씨발'이 된 것이라는 것이 정설이라고 합니다. 북한은 지금도 '씹할'을 쓴다고 하니, 가장 유력한 설이 아닌가 싶네.. 2023. 5. 21.
728x90