[Pandas] 판다스 데이터프레임 함수 처리 | 기초 통계 | 판다스로 날짜 다루기

·2024년 12월 20일

데이터프레임 함수 처리

apply()

df.apply(function, axis = _)
  • function: 각 열이나 행에 적용할 함수
  • axis: 0인 경우 각 column에 함수 적용(default), 1인 경우 각 행에 함수 적용.
  • lambd와 함께 자주 사용
orders['주문ID'].apply(lambda x:x[:5])

: 주문ID 값의 앞 5글자만 가져온다.

기초 통계

# 최대
df.max()

# 최소
df.min()

# 평균
df.mean()

# 중앙값
df.median()

# 최비값
df.mode(dropna = True) # 결측치 제외 여부

# 표준편차
df.std()

# 분산
df.var()

# 누적합
df.cumsum()

# 누적곱
df.cumprod()
# 분위수
df.quantile(q = 분위수 소수로 표현)
df.quantile(0.75) # 75% wlwja

# 상관계수
df.corr(method = 'pearson', min_periods = 1) # 상관계수 방식/유효 결과 얻기 위한 최소 값의 수

# 상관계수
df.corrwith(다른 행or열, method = 'pearson')	

판다스로 날짜 다루기

pd.to_datetime()

pd.to_datetime('2019-1-1 12')
# 결과: # Timestamp('2019-01-01 12:00:00') 
  • 문자열을 날짜로 생성
pd.to_datetime(['2018-1-1', '2019-1-2']) 
# DatetimeIndex(['2018-01-01', '2019-01-02'], dtype='datetime64[ns]', freq=None)
  • 날짜들의 리스트를 넣을 경우, DatetimeIndex라는 배열이 생성

pd.date_range()

  • 특정 기간의 날짜를 자동 생성
pd.date_range('2018-1-1', '2019-1-2')
  • 결과:
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',
               '2018-01-09', '2018-01-10',
               ...
               '2018-12-24', '2018-12-25', '2018-12-26', '2018-12-27',
               '2018-12-28', '2018-12-29', '2018-12-30', '2018-12-31',
               '2019-01-01', '2019-01-02'],
              dtype='datetime64[ns]', length=367, freq='D')
  • '2019-01'과 '2019-02'를 전달하면 2월 말까지 데이터를 생성하는 것이 아니라 2월 1일자 데이터만 생성

import datetime

datetime.datetime.strptime(date_string, format)

  • 문자열로 된 날짜 및 시간을 datetime 객체로 변환
  • “string parse time”의 약자

datetime.datetime.strftime(format)

  • datetime 객체를 지정한 포맷에 맞게 문자열로 변환
  • “string format time”의 약자
import datetime

# 현재 시간 가져오기
now = datetime.datetime.now()
print("현재 시간:", now)

# 날짜 및 시간 객체 생성
dt = datetime.datetime(2022, 3, 1, 12, 30, 45)
print("생성된 날짜 및 시간:", dt)

# 문자열을 날짜 및 시간으로 변환
str_date = "2022-03-01 12:30:45"
dt = datetime.datetime.strptime(str_date, "%Y-%m-%d %H:%M:%S")
print("문자열에서 생성된 날짜 및 시간:", dt)

# 날짜 및 시간 객체의 속성 접근
year = now.year
month = now.month
day = now.day
hour = now.hour
minute = now.minute
second = now.second
microsecond = now.microsecond
print(year, month, day, hour, minute, second, microsecond)

# 날짜 및 시간 객체 간의 차이 계산
delta = datetime.datetime(2022, 3, 1, 12, 30, 45) - datetime.datetime(2022, 2, 28, 11, 15, 30)
print("두 날짜 및 시간의 차이:", delta)

# 날짜 및 시간 포맷 지정
str_date = now.strftime("%Y-%m-%d %H:%M:%S")
print("포맷 지정된 현재 시간:", str_date)
profile
To Dare is To Do

0개의 댓글