05. ch01. pandas - 05. 통계값(describe), 요약 정보(info), 정렬
1. 파일 읽어오기(csv)
import pandas as pd
df = pandas.read_csv('http://bit.ly/ds-korean-idol')
df
>
2. 기본 정보 알아보기(index, column, info)
2-1, column(열) 출력하기.
df.columns
Index(['이름', '그룹', '소속사', '성별', '생년월일', '키', '혈액형', '브랜드평판지수'], dtype='object')
가로목록
2-2. column(열) 이름 재정의
new_col = ['name', '그룹', '소속사', '성별', '생년월일', '키', '혈액형', '브랜드평판지수']
(원래 데이터 개수와 새로 바꿀 데이터 개수가 동일해야함)
df.columns = new_col
df.columns
>Index(['name', '그룹', '소속사', '성별', '생년월일', '키', '혈액형', '브랜드평판지수'], dtype='object')
2-3. index(행) 출력
df.index (여기엔 괄호 안넣음)
>RangeIndex(start=0, stop=15, step=1)
2-4. info는 기본적인 row(행)의 정보와 데이터 타입
info 메소드는 주로 빠진 (null) 값. 데이터 타입 볼 떄 활용
df.info()
><class 'pandas.core.frame.DataFrame'>
RangeIndex: 15 entries, 0 to 14
Data columns (total 8 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 name 15 non-null object
1 그룹 14 non-null object
2 소속사 15 non-null object
3 성별 15 non-null object
4 생년월일 15 non-null object
5 키 13 non-null float64
6 혈액형 15 non-null object
7 브랜드평판지수 15 non-null int64
dtypes: float64(1), int64(1), object(6)
memory usage: 1.1+ KB
3. 통계 정보 알아보기(describe)
df.describe()
> 키 브랜드평판지수
count row개수 13.000000 1.500000e+01
mean 평균 175.792308 5.655856e+06
std 표준편차 5.820576 2.539068e+06
min 최소 162.100000 2.925442e+06
25% 상위 174.000000 3.712344e+06
50% 177.000000 4.668615e+06
75% 179.200000 7.862214e+06
max최대 183.000000 1.052326e+07
산술연산을 할 수 있는 column만 출력
4. 형태(shape) 알아보기
tuple 형태로 반환. 첫번째는 row, 두번쨰는 column 숫자
df.shape
(15, 8)
5. 상위 5개, 하위 5개 정보만
head() 상위 5개 row 출력
tail() 하위 5개 row 출력
head(3) 상위 3개 row 출력
6. 정렬
6-1. 오름차순 정렬 (default)
df.sort_index()
6-2. 내림차순 정렬
df.sort_index(ascending=False)
7. column별로 정렬
7-1. 오름차순 정렬
df.sort_values(by='키')
7-2. 내림차순 정렬
df.sort_values(by = '키', ascending=False)
복수 정렬
df.sort_values(by=['키', '브랜드평판지수'])
df.sort_values(by=['키', '브랜드평판지수'], ascending=False) 내림차순
ch01_pandas_06~09_selection
import pandas as pd
df = pd.read_csv('http://bit.ly/ds-korean-idol')
df
1. column 선택
1) df['이름']
2) df["이름"]
1)이나 2) 방법 사용하기.
>0 지민
1 지드래곤
2 강다니엘
3 뷔
4 화사
5 정국
6 민현
7 소연
8 진
9 하성운
10 태연
11 차은우
12 백호
13 JR
14 슈가
Name: 이름, dtype: object
3) df.이름
2. 범위 선택 (range selection)
2-1. 단순 index에 대한 범위 선택
df[:3] 행 기준으로 선택
2-2. loc(소문자 엘)
많이 사용
df.loc[:, '이름']
쉼표 기준 왼쪽은 행, 오른쪽은 열
왼쪽 땡땡 : 행은 다 가져와. 열은 이름만 가져와.
df.loc[:, ['이름', '생년월일']]
>이름 생년월일
0 지민 1995-10-13
1 지드래곤 1988-08-18
2 강다니엘 1996-12-10
3 뷔 1995-12-30
4 화사 1995-07-23
5 정국 1997-09-01
6 민현 1995-08-09
7 소연 1998-08-26
8 진 1992-12-04
9 하성운 1994-03-22
10 태연 1989-03-09
11 차은우 1997-03-30
12 백호 1995-07-21
13 JR 1995-06-08
14 슈가 1993-03-09
df.loc[3:8, ['이름', '생년월일']]
>이름 생년월일
3 뷔 1995-12-30
4 화사 1995-07-23
5 정국 1997-09-01
6 민현 1995-08-09
7 소연 1998-08-26
8 진 1992-12-04
df.loc[2:5, '이름':'생년월일']
이름 그룹 소속사 성별 생년월일
2 강다니엘 NaN 커넥트 남자 1996-12-10
3 뷔 방탄소년단 빅히트 남자 1995-12-30
4 화사 마마무 RBW 여자 1995-07-23
5 정국 방탄소년단 빅히트 남자 1997-09-01
이하(포함시켜서) 를 가져옴. numpy와 다른 점. numpy는 미만을 가져옴
행은 2부터 5까지 열은 이름부터 생년월일까지 출력
2-3. iloc(position으로 색인)
df.iloc[:, 0:2]
이름으로 가져오는게 아니라 몇번째 숫자로 가져오기
df.iloc[1:5, 0:2]
>이름 그룹
1 지드래곤 빅뱅
2 강다니엘 NaN
3 뷔 방탄소년단
4 화사 마마무
미만으로 가져옴. loc와 iloc와 또 다름. 포함시키지 않음
패스트캠퍼스 데이터분석 강의 링크
https://bit.ly/3imy2uN