Python/데이터 분석

Python의 Pandas 기초

Yonggyu 2023. 9. 27. 16:46
반응형

 

Pandas DataFrame 생성

titanic_train.csv이라는 파일의 배  승객 데이터set이 있다. 이 데이터set을 pandasread_csv()함수로 읽어서 데이터분석을 할 수 있는 형태인 DataFrame으로 변환한다.

import pandas로 참조해야한다.

밑의 그림은 titanic_train.csv의 정보들이다.

titanic_train.csv
 
 
import pandas as pd

ti_df=pd.read_csv('titanic_train.csv')

display(ti_df)  # DataFrame 출력 (앞의 5행, 맨뒤5행 출력 나머지는 생략)

밑의 그림이 결과값이다. 앞의 5개행과 맨밑의 5개행을 제외한 나머지를 출력하는것이 기본값이다.
또한 dataFrame은 print()보다 display()로 해야 보기편하다

display(ti_df)

 

 

현재 DataFrame의 타입과 행,열을 확인하는 코드는 type(), shape을 사용하면된다.

print(type(ti_df))   #type
print(ti_df.shape)   #행,열개수

"""결과
<class 'pandas.core.frame.DataFrame'>
(891, 12)
"""

 

head() : 함수안의 정수를 넣으면 맨앞의 행을  그 숫자만큼 보여준다.
- 기본값 5

 

tail() : head()와 비슷하지만 맨뒤의 행을 정수만큼 보여준다.
- 기본값 5

 

DataFrame slicing(슬라이싱)

예) display(ti_df[:6])  : 5행까지 보여준다.

 

 

index를 지정해서 조회하기

iloc.[index번호] 연산자를 사용하여 조회가능하다.

하지만 DataFrame에서 행이나 열을 하나만 추출(indexing)하면 Series type으로 변한다.

slicing은 dataFrame구조(2차원)이 유지되지만 indexing으로하면 1차원인 Series 구조로된다.

 

# display(ti_df[4])    index를 지정하는건 불가
display(ti_df.iloc[4])   #4행출력 

display(ti_df[4:5])   # 똑같이 4행출력 슬라이싱

결과

위 그림처럼 iloc[]를 이용하여 indexing하면 1차원 구조로 출력되고, 슬라이싱으로 하면 2차원구조로 유지된상태로 출력된다.

 

 

DataFrame에서 한 열(column)만 추출하기

형식]  DataFrame['열']

- series type으로 변환된다.

 

display(ti_df['Name'])  # DataFrame에서 Name 열 추출 

""" 결과
0                                Braund, Mr. Owen Harris
1      Cumings, Mrs. John Bradley (Florence Briggs Th...
2                                 Heikkinen, Miss. Laina
3           Futrelle, Mrs. Jacques Heath (Lily May Peel)
4                               Allen, Mr. William Henry
                             ...                        
886                                Montvila, Rev. Juozas
887                         Graham, Miss. Margaret Edith
888             Johnston, Miss. Catherine Helen "Carrie"
889                                Behr, Mr. Karl Howell
890                                  Dooley, Mr. Patrick
Name: Name, Length: 891, dtype: object
<class 'pandas.core.frame.DataFrame'>
"""

위코드처럼 1차원으로 출력이되고 Name의 열들이 나열되었다.

[]를 두개사용하면 1차원이 아닌 2차원으로 그대로 구조가 유지되어 출력된다.

 

#[] 2개사용하기 <-- DataFrame구조로 유지된다.

print(ti_df[['Pclass']])
print(type(ti_df[['Pclass']]))  # type확인

"""결과
     Pclass
0         3
1         1
2         3
3         1
4         3
..      ...
886       2
887       1
888       3
889       1
890       3

[891 rows x 1 columns]
<class 'pandas.core.frame.DataFrame'>
"""

 

 

그 외의 기본적인 함수

DataFrame.columns  : 열의 제목 반환

DataFrame.info() : DataFrame의 기본정보 반환

728x90
반응형

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

Python Pandas 기초(2)  (0) 2023.09.27