엑셀 데이터 전처리 쉽게하기
www.youtube.com/watch?v=_bxFs4qTGQQ
import pandas as pd
df1 = pd.read_csv('Data01.csv') print(df1.shape) # 전체 줄 수, 컬럼 수
(15000, 7)
df1.head()
날짜상품명바코드발주가능상태입고수량카테고리출고수량
0 | 2019-05-16 | V2_0 | 8.801047e+12 | 발주가능 | 384 | 세탁세제 | 72 |
1 | 2019-05-16 | V2_3 | 8.801047e+12 | 발주가능 | 207 | 세탁세제 | 5 |
2 | 2019-05-16 | V2_7 | 8.801047e+12 | 발주가능 | 520 | 헤어케어 | 19 |
3 | 2019-05-16 | V2_11 | 8.801047e+12 | 발주가능 | 0 | 세탁세제 | 5 |
4 | 2019-05-16 | V2_14 | 8.801046e+12 | 발주가능 | 96 | 세탁세제 | 1 |
df1.info() # 컬럼별 자료 정보
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 15000 entries, 0 to 14999
Data columns (total 7 columns):
날짜 15000 non-null object
상품명 15000 non-null object
바코드 14992 non-null float64
발주가능상태 15000 non-null object
입고수량 15000 non-null int64
카테고리 15000 non-null object
출고수량 15000 non-null int64
dtypes: float64(1), int64(2), object(4)
memory usage: 820.4+ KB
df1.describe() # 숫자값 컬럼 통계
바코드입고수량출고수량
count | 1.499200e+04 | 15000.000000 | 15000.000000 |
mean | 1.294839e+13 | 58.144533 | 7.205200 |
std | 5.243929e+12 | 348.398250 | 19.819656 |
min | 6.414100e+12 | 0.000000 | 0.000000 |
25% | 8.801046e+12 | 0.000000 | 0.000000 |
50% | 8.801047e+12 | 0.000000 | 1.000000 |
75% | 1.880105e+13 | 0.000000 | 4.000000 |
max | 2.880105e+13 | 9777.000000 | 308.000000 |
df1['카테고리'].unique() # 범주형 데이터 항목
array(['세탁세제', '헤어케어', '주방세제', 'ST', 'F&B', '덴탈케어', '기타', '매입브랜드'], dtype=object)
df1['카테고리'].value_counts() # 범주형 데이터 항목 갯수
세탁세제 4265
덴탈케어 3115
헤어케어 2750
ST 1732
주방세제 1709
F&B 1038
매입브랜드 238
기타 153
Name: 카테고리, dtype: int64
df1['카테고리'].describe() # 범주형 특정 컬럼의 통계 정보
count 15000
unique 8
top 세탁세제
freq 4265
Name: 카테고리, dtype: object
df1[['발주가능상태','카테고리','상품명']].describe()
발주가능상태 카테고리 상품명
count | 15000 | 15000 | 15000 |
unique | 3 | 8 | 528 |
top | 발주가능 | 세탁세제 | V2_114 |
freq | 14700 | 4265 | 47 |
df1.describe().columns.tolist() # 숫자형 컬럼 리스트
['바코드', '입고수량', '출고수량']
df1.columns.tolist() # 전체 컬럼 리스트
['날짜', '상품명', '바코드', '발주가능상태', '입고수량', '카테고리', '출고수량']
total_list = df1.columns.tolist() # 전체 컬럼 리스트
numeric_list = df1.describe().columns.tolist() # 숫자 컬럼 리스트
object_list = list(set(total_list)-set(numeric_list)) # 문자 컬럼 리스트 추출
df1[object_list].describe() # 모든 문자형 컬럼들의 통계 정보
상품명 날짜 발주가능상태 카테고리
count | 15000 | 15000 | 15000 | 15000 |
unique | 528 | 84 | 3 | 8 |
top | V2_114 | 2019-05-26 | 발주가능 | 세탁세제 |
freq | 47 | 226 | 14700 | 4265 |
- 정렬
df1.sort_values(by='입고수량',ascending=False) # 특정 컬럼 기준으로 정렬 (내림차순)
df1.sort_values(by=['입고수량','출고수량'],ascending=[True,False]) # 여러 컬럼 기준으로 정렬
날짜상품명바코드발주가능상태입고수량카테고리출고수량
9091 | 2019-07-01 | V2_86 | 1.880105e+13 | 발주가능 | 0 | 세탁세제 | 305 |
5005 | 2019-06-10 | V2_86 | 1.880105e+13 | 발주가능 | 0 | 세탁세제 | 266 |
3831 | 2019-06-04 | V2_86 | 1.880105e+13 | 발주가능 | 0 | 세탁세제 | 258 |
5200 | 2019-06-11 | V2_86 | 1.880105e+13 | 발주가능 | 0 | 세탁세제 | 256 |
3218 | 2019-06-01 | V2_86 | 1.880105e+13 | 발주가능 | 0 | 세탁세제 | 250 |
... | ... | ... | ... | ... | ... | ... | ... |
14062 | 2019-07-31 | V2_129 | 8.801050e+12 | 발주가능 | 7287 | 덴탈케어 | 49 |
14051 | 2019-07-31 | V2_86 | 1.880100e+13 | 발주가능 | 9480 | 세탁세제 | 141 |
13054 | 2019-07-23 | V2_86 | 1.880105e+13 | 발주가능 | 9488 | 세탁세제 | 208 |
9719 | 2019-07-04 | V2_86 | 1.880105e+13 | 발주가능 | 9539 | 세탁세제 | 205 |
3647 | 2019-06-03 | V2_86 | 1.880105e+13 | 발주가능 | 9777 | 세탁세제 | 308 |
15000 rows × 7 columns
'Python 활용' 카테고리의 다른 글
파이썬, 추억의 오락실 게임 만들기 (pygame) (0) | 2021.06.08 |
---|---|
판다스 퀵 가이드 (0) | 2021.05.12 |
엑셀 데이터 전처리 (Python / Pandas) (0) | 2021.05.07 |
파이썬, 미디 파일 구조 분석용 코드 예제 (0) | 2021.04.24 |
파이썬, Pandas로 엑셀 파일 읽기, 쓰기 (0) | 2021.04.24 |