exercise1 정리

김태희·2025년 1월 7일
0

The Series


Creating a Series

  • pd.Series([])
    • 1차원 데이터 구조
  • index = []
    • 프레임 왼쪽에 index가 생김
  • .index
    • 인덱스를 반환
    • 정해둔 인덱스가 없으면 자동으로 0부터
      • RangeIndex
  • .values
    • 값을 numpy 배열 형태로 출력
  • .head()
    • 맨 처음 5개만
      • 괄호 안에 숫자 넣으면 그만큼만
  • .tail()
    • 뒷 부분 5개만
  • .sample()
    • 랜덤하게 골라서 5개
  • z12가 아래와 같을 때,
    z12 = pd.Series([1.1, 2.2, 3.3, 4.4, 5.5], ['e', 'd', 'c', 'b', 'a']);
    • z12['c']
      • c에 해당하는 거 출력
    • z12[z12 > 3]
      • 값이 3보다 큰 데이터만 출력
    • np.sin(z12)
      • 각 값에 sin함수 적용 된 거 출력
  • 새로운 인덱스에 맞춰 재배치
    z14 = pd.Series(zdata1, index=season14); # 이 순서대로 새로 정렬
  • 결측값 확인
    • pd.isnull(z15)
    • z15.isnull()
    • notull은 반대임

Series Attributes

  • csv
    • 쉼표로 구분 된 값

      pd.read_csv('lasvegas.csv') 
  • .DataFrame
    • 데이터프레임 생성
  • .set_index()
    • 인덱스로 설정
  • loc
    • 인덱스 이름 또는 열 이름으로 데이터 선택
    • ex)
      scientists.loc['William Gosset', 'Occupation']  # 특정 행과 열 선택
      
      # df.loc['index_label', 'column_label']
  • iloc
    • 정수 인덱스 위치로 데이터 선택
    • ex)
      scientists.iloc[2, 0]
      
      # df.iloc[row_index, column_index]

The series is ndarray-like

  • std()
    • 표준표본편차
  • describe()
    • 통계 요약을 제공
  • Boolean 인덱싱
    • ex)
      manual_bool_values = [True, True, False, False, True, True, False, False]
      • True에 해당하는 위치만 반환

Operations Are Vectorized

  • .sort_index(ascending=False)
    • 내림차순
    • 기본 값은 오름차순 (True)

DataFrame


Creating a DataFrame

  • 이런 식으로 만든다
    scientists = pd.DataFrame(
        data={'Occupation': ['Chemist', 'Statistician'], 
              'Born': ['1920-07-25', '1876-06-13'],
              'Died': ['1958-04-16', '1937-10-16'],
              'Age': [37, 61]},
        index=['Rosaline Franklin', 'William Gosset'], 
        columns=['Occupation', 'Born', 'Died', 'Age'])
  • 랜덤 숫자로 채워진 데이터프레임 생성
    df21 = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))
  • Timestamp
    • 날짜 연산과 인덱싱
  • Categorical
    • 범주형 데이터 타입
      • 숫자로 측정할 수 없는 것
  • 데이터프레임 전치
    print('\n PD27 \n', df22.T, '\n')
  • sort_index(axis=1)
    • 열방향으로 정렬
  • sort_index(axis=0)
    • 행방향으로 정렬
  • sort_values(by='E')
    • 열 ‘E’값을 기준으로 정렬

Boolean Subsetting DataFrame

  • at
    • loc과 유사하지만, 단일 값을 빠르게 접근할 때 사용
      • loc은 여러 행과 열을 동시에 선택할 때 유용
  • .copy()
    • 깊은 복사
      • 사본이어서 원본 영향 안 받음
  • .isin
    • 특정 값이 열에 포함되어있는지 확인하고 필터링

Make Changes to Series and DataFrame


Add Additional Columns

  • .to_datetime()
    • 문자열 또는 다른 형식의 날짜 데이터를 pandas의 datetime 객체로 변환하는 함수
  • 코드
    scientists.sample(frac=1).reset_index(drop=True)
    • shape
      • 데이터프레임의 행과 열의 수를 반환
    • sample()
      • 무작위로 샘플을 추출
    • frac=1
      • 전체 데이터프레임을 무작위로 섞는다
    • .reset_index()
      • 데이터프레임의 인덱스 초기화
    • drop=True
      • 기존 인덱스를 열로 추가하지 않고, 완전히 제거
      • 연속적인 정수형 인덱스
    • drop()
      • 특정 행 또는 열을 삭제

Data Loading and Subsetting


Subsetting Columns

  • .info
    • 간단한 요약 정보
  • df.columns[[0, -1]]
    • 첫 번째 열과 마지막 열의 이름을 리스트로 반환

Subsetting rows

  • df.iloc[:2, 1:4]
    • 행 : 0번 행부터 1번 행까지
    • 열 : 1번 열부터 3번 열까지
  • df.iat[’행’, ’열’]
    • 정수기반으로 인덱싱
    • 단일 셀에만 사용 가능
    • 단일 스칼라 값으로 반환 원할 때

Groupby

  • astype
    • 데이터 타입 변경

Grouped means

  • sep='\t’
    • 데이터 파일이 ‘\t’로 구분된 경우 사용
    • ‘\t’를 기준으로 구분
  • .nunique()
    • 고유 값의 개수를 계산
    • 중복 값을 제거함
    • 데이터에 몇 개의 고유 값이 있는지 알고 싶을 때
  • .value_counts()
    • 고유 값의 빈도수를 계산
    • 특정 값의 빈도 확인
    • 각 값이 몇 번 나왔는지 알고 싶을 때
    • 빈도수에 따라 내림차순 정렬됨

Missing data

  • .reindex()
    • 기존 데이터에서 재구성된 인덱스와 칼럼에 맞춰 값을 정렬
    • 없는 값은 NaN으로
  • 기존 칼럼 + 추가 칼럼
    columns=list(df31.columns) + ['E']
  • .dropna(how=’any’)
    • 결측값이 있는 행을 삭제
    • how=’any’
      • 해당 행에 하나라도 NaN이 있으면 삭제
  • .fillna()
    • 결측값을 특정 값으로 대체

Mixing it up

  • .mod()
    • 나머지

Statistics

  • .shift(2)
    • 데이터를 아래로 2칸 이동
  • 코드
    df51.sub(s51, axis='index')
    • DataFrame의 요소별로 다른 데이터(Series 또는 DataFrame)를 뺌
    • axis='index'는 행 기준으로 연산을 수행하도록 지정
      • 즉, df51의 각 행에서 동일한 인덱스를 가진 s51의 값을 뺌
    • 요소별 연산에서 한쪽에 값이 NaN이면 결과도 NaN이 됨
  • np.cumsum
    • 누적 합을 계산
  • apply()
    • DataFrame의 각 열 또는 행에 함수를 적용할 때 사용
    • 기본적으로 열 단위로 적용
  • lambda
    • 이름 가지지 않는 익명함수
profile
내 벨로그

0개의 댓글