import pandas as pd
import numpy as np
df = pd.read_csv('./datasets/bike_rentals/bike_rentals.csv')
df.iloc[2, 3] = np.nan # 결측치를 임의로 만들기 위해 추가
df.head(10)
# Dataframe의 열 및 행 선택
# iloc을 이용한 행 선택
df.iloc[2:5, 3:6]
# loc을 이용한 행 선택
df.loc[2:4, 'workingday':'temp']
# season 열의 값이 2인 행들만 선택
df.loc[df['season'] == 2]
# season이 2인 행들 중에 casual, resistered, count 열만 선택
df.loc[df['season'] == 2, 'casual':]
#season이 1이 아니면서 동시에 weather가 2가 아닌 모든 행 선택
df.loc[(df['season'] != 1) & (df['weather'] != 2)]
#season이 1이 아니면서 동시에 weather가 2가 아닌 모든 행 선택, ~ 사용
df.loc[~(df['season'] == 1) & ~(df['weather'] == 2)]
# select_dtypes을 이용한 열 선택
df.info()
# select_dtypes 메서드를 사용하여 int형 변수만 선택
df.select_dtypes(include='int')
# select_dtypes 메서드를 사용하여 int형 변수만 제외하여 선택
df.select_dtypes(exclude='int')
df = df.set_index('datetime')
# filter 메소드를 이용한 행과 열 선택
#'날짜 시:분:초' 형태로 이루어진 형태의 인덱스에서 00:00:00을 포함하는 인덱스만 선택
df.filter(like='00:00:00', axis=0)
# humidty와 windspeed 열만 필터링
df.filter(items=['humidity', 'windspeed'])
#열 이름 중에 'in'과 's' 사이에 임의의 한 문자를 지니는 열을 필터링
df.filter(regex='in.s')
# rename을 사용한 행, 열 이름 변경
# 열 이름 변경
df.rename(
{'registered':'registered_user',
'casual':'unregistered_user'},
axis=1
)
# column 인자 사용하기
df.rename(
columns={'registered':'registered_user',
'casual':'unregistered_user'}