본문 바로가기

데이터 분석/데이터 전처리56

[Pandas] 41. dfply를 이용하여 데이터프레임 쉽게 다루기 안녕하세요~ 꽁냥이에요. R을 이용하시는 분들은 데이터 테이블을 파이프라인 연산자 '%>%'을 이용하여 쉽게 전처리 코딩을 할 수 있습니다. 하지만 파이썬(Python)에서도 Pandas의 데이터프레임을 파이프라인 연산자 '>>' 또는 '>>='을 이용하여 전처리를 쉽게 할 수 있다는 것을 알고 계셨나요? 바로 오늘 소개할 dfply을 이용하면 이것이 가능합니다. 이번 포스팅에서는 dfply 사용법에 대해서 알아보겠습니다. - 목차 - 1. dfply 기본 2. 칼럼 선택 및 제외 3. 행 필터링 4. 데이터 변환(칼럼 생성) 5. 윈도우 함수와 요약 함수 6. 그룹별 집계 7. 재구조화 8. 결합 9. 집합 연산과 바인딩 1. dfply 기본 1) 설치 먼저 dfply를 pip 명령어를 통해 설치해 줍.. 2023. 5. 5.
[Numpy] 원-핫 인코딩(One-Hot Encoding) 간단하게 해보기 (feat. eye) 안녕하세요~ 꽁냥이에요. 데이터 전처리시 범주형 변수가 있는 경우 이를 One-Hot Encoding으로 변환하는 경우가 많은데요. Numpy에서 제공하는 eye 함수를 이용하면 One-Hot Encoding을 쉽게 할 수 있는데요. 이번 포스팅에서는 Numpy를 이용한 One-Hot Encoding 방법을 알아보고 나만의 One-Hot Encoder를 만들어보는 방법에 대해서 알아보겠습니다. 원-핫 인코딩(One-Hot Encoding) 구현 1) numpy를 이용한 One-Hot Encoding : eye 만약 범주가 0부터 시작하는 숫자로 되어 있는 경우 Numpy의 eye 함수를 이용하여 One-Hot Encoding을 할 수 있습니다. eye 함수는 숫자를 인자로 받고 해당 숫자만큼의 행을 갖는.. 2023. 4. 16.
[Pandas Tip] 오류 해결 - SettingWithCopyWarning 안녕하세요~ 꽁냥이에요. Pandas로 특정 조건에 맞는 행을 추출해서 만든 데이터를 가지고 새로운 칼럼을 만들거나 특정 셀 값을 변경하려고 할 때 종종 SettingWithCopyWarning 경고가 나타나는 것을 알 수 있습니다. 이번 포스팅에서는 이러한 오류가 나는 이유를 예제와 함께 살펴보고 해결방법 또한 소개하겠습니다. SettingWithCopyWarning SettingWithCopyWarning은 Chained Assignment인 경우와 Hidden Chaining의 경우에 따라 해결 방법이 다르므로 각각에 대해서 살펴보겠습니다. 또한 경고창을 끄는 방법도 살펴보겠습니다. 1) Chained Assignment Chained Assignment를 알아보기 전에 Assignment와 Acc.. 2023. 2. 10.
[Pandas Tip] 오류 해결 - PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead 안녕하세요~ 꽁냥이에요. Pandas 데이터프레임(DataFrame)에 칼럼을 for loop를 이용하여 대량으로 추가한다면 종종 아래와 같은 경고를 볼 수 있습니다. PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead 이번 포스팅에서는 해당 경고가 나오는 이유와 해결 방법에 대해서 알아보겠습니다. PerformanceWarning: DataFrame is highly fragm.. 2023. 2. 3.
[Pandas] 40. 데이터프레임(DataFrame)의 특정 칼럼으로 데이터 순위 매기기 (feat. rank) 안녕하세요~ 꽁냥이에요. 데이터 분석을 하다 보면 특정 칼럼에 어떤 값을 기준으로 순위(Rank)를 매겨야 할 때가 있는데요. Pandas에서는 rank라는 함수를 이용하여 데이터프레임(DataFrame)의 특정 칼럼으로 데이터의 순위를 매길 수 있습니다. 이번 포스팅에서는 데이터 rank를 이용한 순위를 구하는 방법에 대해서 알아보겠습니다. 데이터프레임(DataFrame)의 특정 칼럼으로 데이터 순위 매기기 1) 데이터프레임(DataFrame)의 특정 칼럼을 기준으로 순위 매기기 먼저 숫자 값을 갖고있는 배열의 순위(Rank)를 매기는 방식을 알아보겠습니다. 먼저 배열을 오름차순(또는 내림차순)으로 정렬한 뒤 맨 첫 원소의 1을 부여하고 다음 원소로 갈수록 1씩 증가시켜 순위(Rank)를 부여합니다. .. 2023. 1. 21.
[Pandas] 39. 데이터프레임 열(칼럼) 또는 행 똑같이 맞추기 (feat. align) 안녕하세요~ 꽁냥이에요. 데이터 분석을 하다 보면 여러 테이블을 합쳐야 하는데 칼럼이나 행이 일치하지 않아서 이를 일치시켜주어야 할 때가 있습니다. Pandas에서는 align이라는 함수를 이용하여 여러 데이터프레임에 대하여 칼럼 열(칼럼) 또는 행을 똑같이 맞출 수 있는데요. 이번 포스팅에서는 Pandas의 align 함수를 방법에 대해서 알아보겠습니다. align 사용법 두개의 데이터프레임 df1, df2가 있다고 할 때 align의 사용법은 다음과 같습니다. df1.align( df2, join, axis ) align은 두 데이터프레임을 결합할 때 사용하는 join 메서드와 비슷합니다. align 함수는 일치시킬 데이터프레임을 첫 번째 인자로 넣어줍니다. join 인자에는 일치시키는 방법을 말하며.. 2023. 1. 19.
[Pandas] 38. 특정 칼럼(Pandas Series)의 누적합, 누적곱, 누적 최대값, 누적 최소값 구하기(feat. cumsum, cumprod, cummax, cummin) 안녕하세요~ 꽁냥이입니다. 이번 포스팅에서는 Pandas에서 제공하는 누적합(cumsum), 누적곱(cumprod), 누적 최대값(cummax), 누적 최소값(cummin)을 구하는 방법을 알아보고자 합니다. 누적값 구하기 1) 누적합 : cumsum 누적합은 배열의 첫 번째 원소부터 다음 원소로 진행해가면서 값을 계속 더해나가는 것을 말합니다. Pandas에서는 Series 객체의 cumsum 메서드를 이용하면 누적합을 계산할 수 있습니다. 이때 NaN을 만나면 NaN을 출력하고 그 다음 부터는 무시합니다. import pandas as pd import numpy as np data = [1,2,3,7,np.nan,10,1] print(pd.Series(data).cumsum()) 만약 NaN를 쭉 .. 2023. 1. 18.
[Pandas] 37. 여러가지 통계량 구하기 안녕하세요~ 꽁냥이에요. 이번 포스팅에서는 Pandas에서 제공하는 여러 가지 통계량(평균, 분산, 중앙값, 분위수 등)을 정리해 보았어요. 테이블에 통계량의 의미와 함수를 정리했고요. 테이블에서 data는 숫자형 데이터를 담고있는 1차원 배열을 의미합니다. 또한 사용법도 있으니 같이 참고하시면 좋습니다. 여러가지 통계량 1) 대표값 평균 pd.Series(data).mean() 중앙값 pd.Series(data).median() 최빈값 pd.Series(data).mode() 제1 사분위수 pd.Series(data).quantile(0.25) 제2 사분위수(중앙값) pd.Series(data).quantile(0.5) 제3 사분위수 pd.Series(data).quantile(0.75) - 파이썬 예.. 2023. 1. 18.
[Pandas] 36. 특정 칼럼 정렬되어 있는지 확인하기 (feat. is_monotonic_increasing, is_monotonic_decreasing) 안녕하세요~ 꽁냥이에요. 오늘은 꽁냥이가 Pandas 문서를 살펴보다가 알게 된 기능을 소개하려고 하는데요. 바로 is_monotonic_increasing, is_monotonic_decreasing 속성입니다. 이 속성들은 Pandas Series 객체가 오름차순 정렬인지 내림차순 정렬인지를 알려줍니다. 이를 이용하면 데이터프레임에서 특정 칼럼의 정렬 여부를 확인할 수 있습니다. 특정 칼럼 정렬되어 있는지 확인하기 1) 오름차순 정렬 확인 : is_monotonic_increasing is_monotonic_increasing은 Pandas Series 객체(또는 칼럼)가 오름차순으로 정렬되어 있는지 확인해 줍니다. df = pd.DataFrame() df['A'] = [1,2,3,4,5] df['B.. 2023. 1. 18.
[Pandas] Tip!! 원하는 데이터 구간 만들기 (feat. IntervalIndex.from_tuples) 안녕하세요~ 꽁냥이에요. 지난 포스팅에서는 Pandas의 cut과 qcut데이터를 구간으로 나누어 보는 방법에 대해서 소개했는데요. 이번 포스팅에서는 번외로 데이터로부터 구간을 만드는 것이 아닌 직접 구간을 만드는 방법을 소개하려고 합니다. cut과 qcut 사용 방법은 아래 포스팅을 참고하시기 바랍니다. [Pandas] 35. 데이터 구간 나누기 (feat. cut, qcut) [Pandas] 35. 데이터 구간 나누기 (feat. cut, qcut) 안녕하세요~ 꽁냥이에요. 데이터 분석을 하다 보면 데이터를 특정 칼럼값을 기준으로 구간을 나누어야 할 때가 있는데요. Pandas에서 제공하는 cut과 qcut을 이용하면 쉽게 구간을 나눌 수 있어요. zephyrus1111.tistory.com 원하는 .. 2023. 1. 17.

맨 위로