분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
파이썬 데이터프레임 메소드
제가 파이썬을 이용하여 데이터를 이용하여
데이터 프레임을 다룰 때,
자주 쓰던 메소드(코드예시) 를 공유하고자 합니다..!
구글링하면서 찾아보곤 했는데 계속 검색하기 번거로워서
이렇게 저장해두고 깜빡깜빡 할 때 ctrl + F 해서 찾곤 합니다.
l 데이터 프레임에서 특정 열의 특정 행 값 찾을 때
df[df['station'] == '아산연안H1_항만']
l 데이터 프레임에서 특정 열의 특정 행 값 드롭할 때
df = df[df['district'] != 24]
l 데이터 프레임에서 a,b,c 구분 별로 평균 값 낼 때
df.groupby(['year', 'month', 'district']).mean()
l 원하는 범위의 열 명 뽑을 때
feature = df.groupby(['year', 'month', 'district']).mean().columns[2:18]
l X, y 트레인 테스트 데이터 셋 나누기
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.8, test_size=0.2, shuffle=True, random_state=123)
l 그룹한 열 시각화
df.groupby(['year', 'month', 'district']).mean().loc[2019, 2]['부유물질 농도[mg/L]'].plot(ax=ax1)
l 데이터 프레임 중복없이 행 뽑기
train["분류"].unique()
l 데이터 프레임 행 밑에 추가하기
pd.concat([df1, df2], axis=0) or
pd.append(df1)
l 데이터 프레임 특정 열의 행 조건 변수 지정하고 그 조건만 뽑기
year1 = train["year"] == year
df = train[year1 & month1 & day1 & hour1]
l 데이터 프레임 특정 열 행 갯수 세기
df["분류"].value_counts()
l 데이터 프레임 컬럼이름 정하기
pd.DataFrame(columns = ['통역', '생활정보'])
l 데이터 프레임 다중 오름차순 정렬
df.sort_values(['month','day','hour'])
l 결측치 0으로 처리
df1.fillna(0)
l 열값 뽑기 / A열 값 조건 맞춘 B열 값 뽑기
df[df['나라'] == '중국']['도시'].value_counts().index
l plt 그래프 사이즈 조정
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = [15, 10]
l 열 이름 바꾸기
testdf2 = testdf2.rename(columns={'교류인원':i})
l A열의 A조건을 가진 테이블을 B속성 행들로 합쳐 묶어서 C열을 나타내기
pd.DataFrame(df[df['A'] == 'A'].groupby(['B']).sum()['C']
l 특정 열 조건 가진 값에 값 전부 바꾸기
#3월 데이터 2월로 치환
df.loc[df.month == 3,'month']=2
l 열삭제
train = train.drop(['Unnamed: 0'], axis=1)
l 스트링 자르기
'world,kim. sesang'.split(',')[1].split('.')[0]
(, 기준 두번째꺼에서 .기준 첫번째꺼 자르기)
train_data.Name = train_data.Name.apply(lambda name: name.split(',')[1].split('.')[0].strip())
이런식으로 lambda써서 일반화 가능
l 인코딩
#Label encoder를 활용하면 위의 작업을 더 쉽게할 수 있음
Label_encoder=LabelEncoder()
Label_encoder.fit(train_data.Sex)
train_data.loc[:,'Sex'] = Label_encoder.transform(train_data.Sex)
l 특정 열의 특정 행 널 값 대입
df_train.loc[(df_train.Age.isnull())&(df_train.Initial=='Mr'),'Age'] = 33
l 두가지 조건 맞춘 데이터 값 드롭!
train=train.drop(train[(train['GrLivArea']>4000) & (train['SalePrice']<300000)].index)
l all_data 라는 데이터프레임의 열 이름을 리스트로 만들기
list(all_data)
l 범주형 인코딩
df=df.replace(to_replace='Po', value=1)
l 범주형/수치형 변수만 뽑기
all_data.select_dtypes(np.object)
all_data.select_dtypes(np.number)
l Datetime으로 변경하기
df['날짜']=pd.to_datetime(df['날짜'])
l 오름차순
df= df.sort_values(by=['등록일자'], ascending=True)
l 인덱스 리셋
df = df.reset_index(drop=True)
l 눌값 확인
df[df['성별'].isnull() == True].head(2)
l 공백 대치하기
df.loc[df.국적 == country,'국적'] = country.strip()
l 모델링 테스트 셋만 분포 보기
l 여러가지 조건 있는 데이터 프레임 뽑기
l 윅데이 및 윗넘버
sample['weekday'] = sample.Date.apply(lambda x : x.weekday())
#월화수목금 데이터 값 가진 열 만들어주기, *apply : 함수 (def) 적용
sample['weeknum'] = sample.Date.apply(lambda x : x.strftime('%V'))
#몇주차인지 데이터 값 가진 열 만들어 주기
* 본 포스팅은 데이콘 서포터즈 “데이크루" 1기 활동의 일환입니다.
감사합니다! :)
유용하네요! 공유 감사합니다 🙂
당연한 것이지만 매번 까먹어서 검색했는데 잘 정리해주셔서 감사합니다! 다음부턴 월드파파님 게시글을 참고하면 되겠네요 🙂
오오 항상 헷갈려서 매번 구글링해서 사용했는데 한번에 정리되어 있으니까 너무 편리하네요!! 공유 감사합니다! 너무 유용할 것 같아요:)
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io | 전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved
저도 한 번씩 기억이 안날 때 있는데 월드파파님 정리본 참조해야겠습니다 :) 좋은 글 고맙습니다!