T1

이상치

# 데이터 열(변수) 이름 수정: period -> time
df_columns.rename(columns={'period': 'time'}, inplace=True)

# 특정 케이스 선택1: 집단선택
df_continent_brand=df[(df['continent']==1) & (df['brand']==1)]

# 하위 5%, 상위 5% 값 구하기
lower = df['f5_1'].quantile(0.05)

# 나이 순(내림차순)으로 정렬
df = df.sort_values('age', ascending=False).reset_index(drop=True)

올림, 내림, 버림

#올림
m_ceil = np.ceil(df['age']).mean()

# 내림
m_floor = np.floor(df['age']).mean()

# 버림
m_trunc = np.trunc(df['age']).mean()

#분산
df_var1 = df['f1'].var()

# 상관관계 구하기 
df_corr = df.corr()
#결측값 확인
df.isnull().sum()

#결측행 제거
df=df.dropna(axis=0)

#결측값 있는 특정 행/열 제거
df[['salary', 'sales', 'roe', 'industry']].dropna()

#열만 제거
data[['salary', 'sales', 'roe', 'industry']].dropna(axis=0) 

#결측값 대체
df['f1'] = df['f1'].fillna(df['city'].map({'서울':s,'경기':k,'부산':b,'대구':d}))

# 결측치 처리 (뒤에 나오는 값으로 채움)
df2 = df2.fillna(method = 'bfill')

# 결측값을 앞 방향으로 채우기: df.fillna(method='ffill' or 'pad')
data_ffill=data.fillna(method='ffill')
data_pad=data.fillna(method='pad')

# 다른 변수 평균으로 대체
# salary 변수의 평균값으로 모든 결측값 대체
data_other_mean=data.fillna(data.mean()['salary'])

#값 변경
df['f4'] = df['f4'].replace('ESFJ', 'ISFJ')
#왜도, 첨도
s1 = df['SalePrice'].skew()
k1 = df['SalePrice'].kurt()

# 조건에 따른 누적합
df2 = df[df['f2']==1]['f1'].cumsum()

# 조건에 맞는 f1의 표준편차
enfj = df[df['f4']=='ENFJ']['f1'].std()
#groupby

# city, f2 그룹핑한 후 합계 구하기 : group by 조건 외 컬럼을 각각 합침
df2 = df.groupby(['city', 'f2']).sum()

#정규화
from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
df['f5']=scaler.fit_transform(df[['f5']])
df.head()

#to_datetime
df['Date'] = pd.to_datetime(df['Date'])
df.info()

# 새로운 컬럼 추가 (년, 월, 일)
df['year'] = df['Date'].dt.year
df['month'] = df['Date'].dt.month
df['day'] = df['Date'].dt.day
df['weekend'] = df['dayofweek'].apply(lambda x: x>=5, 1, 0)