파이썬 기초

chkkkky·2024년 8월 11일

안쓰면 까먹어 버리는 기초

  • zip 함수

여러 개의 이터러블(리스트, 튜플 등)을 인자로 받아, 동일한 인덱스에 있는 요소들을 하나의 튜플로 묶어서 이터레이터를 반환 데이터를 병렬로 처리할 때 유용

ex) a = [1,2,3], b =[4,5,6]
for i in zip(a,b):
    print(i) 
    => 
    (1, 4)
    (2, 5)
    (3, 6)

** 이터레이터를 반환하고 단 한번만 소비가능함 소비가 끝나면 빈 이터레이터가 되므로 다시 사용하고싶다면 다시 zip호출해야함

  • enumerate 함수 (진짜 많이 씀)
    주어진 반복 가능한 객체를
    인덱스와 값을 쌍으로 가지는 튜플을 생성

    ex) a = ['apple', 'banana', 'cherry']
    
    for index, value in enumerate(a):
        print(index, value)
       =>
        0 apple
        1 banana
        2 cherry
  • 리스트에 값 추가

.insert => 원하는 위치가 있을 때 사용
.append => 가장 많이 사용 / 제일 뒤에 추가
.extend => append와 차이점은 리스트를 추가할 때 값만 추가됨

ex)  a= [1,2,3]
.append(a) => [1,2,3] 자체가 추가
.extend(a) => 1,2,3 값 추가

.append만 알아도 무방할듯..

  • lambda 함수

간단한 함수를 정의할 때 사용하는 익명 함수

ex) lambda x : 10 if x > 10 else 20
  • strftime vs strptime

날짜와 시간을 문자열 형식으로 포맷팅하거나 -> strftime() : string format time
문자열로부터 날짜와 시간 객체를 생성 -> strptime() : string parse time

  • replace (결측값 처리시 많이 씀)

특정 문자(열)을 다른 문자(열)로 바꾸기

변수명.replace(현재 문자, 바꿀 문자)

ex) sex라는 컬럼이 문자일 때 수로 바꾸고싶다면

df['sex'].replace({'male':0,'female':1}) 이렇게도 가능
  • map, apply

map : Series 객체에 적용되며, 각 요소에 대해 함수를 적용

apply : Series와 DataFrame에서 사용
함수나 연산을 축(axis)을 기준으로 적용할 수
개별 요소에 대해 적용할 수도 있고, 행 또는 열 단위로 적용할 수도

범주에 따라 값 변경시 lambda와 같이 사용함

ex) df['name'] = df.apply(lambda x: 'james' x['salary'] > 1000)
  • join

특정 문자로 결합
ex) '원하는 문자'.join(원하는 문자열) -> 문자열의 형태가 리스트든 튜플, 딕셔너리, 세트이든 문자열로 바뀌어서 나온다 다만 딕셔너리라면 키값만 join하여 나옴

  리스트 형식을 문자열로 바꾸고싶을 때
  lis = ['i','go','home']
  ' '.join(lis)
  => 'i go home' 이런식으로 문자열로 바꿀 수 있음
  • pivot 테이블

원하는 df 이름 = df명.pivot_table(index=~,columns=~,values=~,aggfunc=~)

  • cut 함수

bins = [~] : 구간

labels = [~] : 구간 사이 라벨

df['새 컬럼 이름'] = pd.cut(df['사용할 컬럼명'], bins = bins, labels = labels ,right=False)

  right = False : 왼쪽 경계는 포함하고 오른쪽 경계는 미포함
  • rename, reindex

    인덱스, 컬럼명 이름 수정

    테이블명.index.names = ~

    테이블명.columns= ~

  df_renamed = df.rename(index={'a': 'x', 'b': 'y'}, columns={'원래 컬럼명':'새 컬럼명'...})


  인덱스 재설정
  df_reindexed = df.reindex(index=['a', 'b', 'd', 'e'])
  
  

0개의 댓글