본문 바로가기
Data Science/Pandas, Numpy

[ Pandas ] DataFrame, Series 함수 요약 정리 👀

by Queen2 2022. 10. 6.
728x90
반응형

벼락치기 혹은 판다스 기본 함수들을 짚고 넘어갈 수 있도록 필수적인 함수들을 정리했습니다!

df는 DataFrame을 의미하며, 자세한 응용사항은 판다스 공식 홈페이지를 통해 파악해보면 좋을 것 같습니다

 

1. 수치연산, 조회, 처리 관련 함수

함수명 수행기능 예시 (Source: pandas.pydata)
df.max, df.min min, max 값 반환 (Series도 가능) pd.Series([4, 2, 0, 8], name='legs').max
df.idxmax, df.idxmin 최대/최소 값의 레이블 반환 >>> df.idxmax()
consumption     Wheat Products
co2_emissions             Beef
dtype: object
df.sum, df.cumsum 합, 누적합 반환 (default로 NA 제외) pd.Series([2, 5, -1, 0]).cummax()
df.mean, df.median 평균, 중앙값 반환  
df.var, df.std 분산, 표준편차 반환 >>> df.var()
age       352.916667
height      0.056367
df.count() 행의 개수 >>> df.count()
Person    5
Age       4
Single    5
dtype: int64
df.describe 통합된 정보
(count, 사분위수, min/max 등) 반환
>>> s = pd.Series([1, 2, 3])
>>> s.describe()
count    3.0
mean     2.0
std      1.0
min      1.0
25%      1.5
50%      2.0
75%      2.5
max      3.0
dtype: float64
df.replace 값 변경 df.replace([0, 1, 2, 3], 4)
df.replace({0: 10, 1: 100})
df.replace({'A': 0, 'B': 5}, 100)
df.rename 컬럼명/인덱스명 변경 df.rename(columns={"A": "a", "B": "c"})
df.rename(index={0: "x", 1: "y", 2: "z"})
df.rename(str.lower, axis='columns')
df.all, df.any 참/거짓 여부 반환 >>> df.any()
A     True
B     True
C    False
dtype: bool
df.duplicated 중복 여부 조회 >>> df.duplicated()
0    False
1     True
2    False
3    False
4    False
dtype: bool
df.drop_duplicates 중복된 행 제거 df.drop_duplicates(subset=['brand'])
df.drop_duplicates()
df.apply(함수) 함수 적용 df.apply(np.sqrt)
df.apply(np.sum, axis=0)
df.eval 문자열 형태의 연산 df.eval('A + B')
df.isin 값의 존재여부 확인 df.isin([0, 2])
df.isin({'num_wings': [0, 3]})
df.nunique unique 값의 개수 반환
(series에도 적용가능)
>>> df = pd.DataFrame({'A': [4, 5, 6], 'B': [4, 1, 1]})

>>> df.nunique()
A    3
B    2
df.query 조건식을 활용한 조회 df = pd.DataFrame({'A': range(1, 6),
                   'B': range(10, 0, -2),
                   'C C': range(10, 5, -1)})

df.query('B == `C C`')
df.query('A > B')
df['column'].between(start,end) start과 end값 사이의 범위 포함 여부 s.between(1, 4)
s.between('Anna', 'Daniel')
df['column'].value_counts() 각 값의 빈도수 반환(nan 제외) >>> df.value_counts()
num_legs  num_wings
4         0            2
2         2            1
6         0            1

df.value_counts(normalize=True)
df.value_counts(sort=False)
df['column'].str.함수 문자열 함수 적용 >>> s.str.replace("_", "")
0    AStrSeries
dtype: object

s.str.contains(pat = 'aa')
s.str.contains(pat='[a-z]',regex=True)

 

 

2. 날짜 관련 함수

pd.to_datetime('날짜',format=형식) 문자열 형식의 날짜를 datetime type으로 정해진 형식으로 변환 pd.to_datetime('2022/10/06',format='%Y년%m월%d일'_
pd.date_range('날짜','날짜',periods=n,freq='D') 정해진 기간 내의 동일한 시간구간으로 나뉘어진 시간 datetimeindex 반환 pd.date_range(start='1/1/2018', end='1/08/2018')

DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04',
               '2018-01-05', '2018-01-06', '2018-01-07', '2018-01-08'],
              dtype='datetime64[ns]', freq='D')

 

 

3. 데이터프레임 병합

 

1) pd.merge

공통컬럼이 존재할 때 pd.merge(df1,df2,how='inner/left/outer',on='column')
공통컬럼 외의 컬럼을 기준으로 merge 할 때 pd.merge(df1,df2,how='inner/left/outer',left_on="df1컬럼명",right_on = 'df2컬럼명')
인덱스를 활용할 때 pd.merge(df1,df2,left_on='index',right_on='index')
왼/오 인덱스를 join key로 설정하고 싶을 때 pd.merge(df1,df2, right_on='index',left_index = True)
pd.merge(df1,df2, rleft_on='index',right_index = True)

 

728x90
반응형

댓글