[데이터 분석] CSV 파일 다루기/ 데이터 프레임 기본 정보 알아보기

2023. 6. 25. 21:37데이터 분석

728x90

CSV 파일이란?

           * CSV(Comma Separated Value)의 약자로 데이터를 쉼표로 구분한 파일

           * 엑셀로 로딩할 수 있지만 쉼표로 구분된 CSV가 더 가볍기 때문에 데이터로 많이 사용됨

           * 공공데이터 포털에서도 CSV 포맷의 파일을 제공

☑️ 일반 CSV 파일 읽어오기

pd.read_csv( 'CSV파일 경로' )

 

☑️ 엑셀 파일 읽어오기

pd.read_excel( '파일경로' )

 


데이터 프레임 기본정보 알아보기

# CSV 파일 가져오기
df = pd.read_csv('http://bit.ly/ds-korean-idol') 
# 가져온 파일 표 보기
df

🌀 결과

 

# 타입 알아보기
type(df)
--------------------------------
▶ pandas.core.frame.DataFrame
# info(): 기본적인 행(row). 열(column)의 정보와 데이터 타입을 반환
df.info()
---------------------------------------------------------------------
# 결과
▶ <class 'pandas.core.frame.DataFrame'>
   RangeIndex: 15 entries, 0 to 14
   Data columns (total 8 columns):
    #   Column   Non-Null Count  Dtype  
   ---  ------   --------------  -----  
    0   이름       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

1️⃣ 열(column)다루기

df.columns
--------------------------------------------------------------------------------------------------------
# 결과
▶ Index(['이름', '그룹', '소속사', '성별', '생년월일', '키', '혈액형', '브랜드평판지수'], dtype='object')
# 새로운 컬럼 만들기
new_column = ['name','group','company','gender','birthday','height','blood','brand']
df.columns = new_column
# 바뀐 새로운 컬럼 확인하기
df

🌀 결과

2️⃣ 통계정보 알아보기

#describe(): 통계 정보를 출력
df.describe()

🌀 결과

df.describe(include=object)

🌀 결과

3️⃣ 형태(shape) 알아보기

df.shape
-------------------
# 결과
▶ (15, 8)

4️⃣ 원하는 개수의 데이터 보기

          * head( ): 상위 5개의 row를 출력

          * head(n): 상위 n개의 row를 출력

          * tail( ): 하위 5개의 row를 출력

          * tail(n): 하위 n개의 row를 출력

df.head()

🌀 결과

df.head(7)

🌀 결과

df.tail(7)

🌀 결과

df.tail()

🌀 결과

# index로 오름차순 정렬
df.sort_index()

🌀 결과

# index로 내림차순 정렬
df.sort_index(ascending=False)

🌀 결과

# 값에 따른 오름차순 정렬
df.sort_values(by='height')

🌀 결과

#값에 따른 내림차순 정렬
df.sort_values(by='height',ascending=False)

🌀 결과

# NaN을 가장 위로 올림: na_position의 기본값은 last
df.sort_values(by='height',na_position='first')

🌀 결과

# 1차 정렬: 키(내림차순), 2차 정렬: 브랜드(오름차순)
df.sort_values(by=['height','brand'],ascending=[False,True],na_position='first')

🌀 결과

데이터 다루기

df.head()

🌀 결과

df['blood']
---------------------------
# 결과
▶ 0      A
   1      A
   2      A
   3     AB
   4      A
   5      A
   6      O
   7      B
   8      O
   9      A
   10     A
   11     B
   12    AB
   13     O
   14     O
   Name: blood, dtype: object

1️⃣ 범위 선택

df.head(3)

🌀 결과

df[:3]

🌀 결과

#loc 인덱싱: 레이블(이름) 인덱싱, 행과 열 모두 인덱싱과 슬라이싱이 가능
df.loc[:,'name']
---------------------------------------------------------------------
▶ 0       지민
   1     지드래곤
   2     강다니엘
   3        뷔
   4       화사
   5       정국
   6       민현
   7       소연
   8        진
   9      하성운
   10      태연
   11     차은우
   12      백호
   13      JR
   14      슈가
   Name: name, dtype: object
728x90
반응형

'데이터 분석' 카테고리의 다른 글

[ 데이터 분석 ] 판다스 (Pandas)  (4) 2023.06.13
[데이터 분석] 연산자  (0) 2023.06.13
[데이터분석] 넘파이 (Numpy)  (0) 2023.06.12