파이썬

1_1 데이터프레임

불나게파이썬 2021. 10. 17. 22:17

데이터 프레임이란, 

데이터프레임은 행과 열이 존재하는 2차원 테이블을 말합니다.
데이터프레임을 만드는 방법은 여러가지가 있으며 그 중 하나는 다음과 같습니다.

===============================================================

데이터프레임이름 = pd.DataFrame({'칼럼명1' : [원소1, 원소2... 원소n],
      '칼럼명2' : [원소1, 원소2... 원소n],
       ...
      '칼럼명N' : [원소1, 원소2... 원소n]}}

-------------------------------------------------------------------------------------------------------------------------

 

1) 상위 5개만 출력하기

# head()를 하면 상위 5개의 행만 출력

# head(10)을 하면 상위 10개의 행만 출력

 

데이터프레임이름.head()

-> select top 5 * from ~ order by 1

 

2) 하위 5개만 출력하기

# tail()를 하면 하위 5개의 행만 출력

# tail(10)을 하면 하위 10개의 행만 출력

 

데이터프레임이름.tail()

-> select top 5 * from ~ order by 1 desc

 

3) 랜덤 몇개만 출력하기

# sample(숫자)를 하면 랜덤으로 2개의 행만 출력

df.sample(2)

 

4) NEWdf = pd.concat([df1, df])

데이터프레임 2개 붙이기

total_df = pd.concat([df1, df2])

 

5) # 데이터프레임을 csv 파일로 저장

total_df.to_csv('data.csv', index=False)

--> index = True 를 넣어보니 에러남 ㅋㅋ

 

6) # csv 파일을 읽어서 데이터프레임에 저장

new_df = pd.read_table('data.csv', sep=',')

df = pd.read_table('news_data.csv', sep=',')

 

7) # 데이터프레임의 이름.isnull().sum()

-> 데이터프레임에서 각 열마다 존재하는 결측값의 개수를 카운트해서 보여줍니다.

 

8) type(데이터프레임이름)

데이터 타입 확인하기 

>>> pandas.core.fram.DataFrame

 

9) 데이터프레임이름.index

인덱스 확인하기

>>>RangeIndex(start=0, stop=193, step=1)

 

# 현재 인덱스는 0부터 시작해서 +1씩(step) 증가하여 192까지 있습니다. 참고로 193에서 stop한다는 것은 193은 포함하지 않는다는 의미입니다. 즉, 0번부터 192번까지의 샘플이 있는 셈이므로 총 샘플의 수는 193개입니다.

 

10) 데이터프레임이름.dtypes

# 데이터프레임의 열 타입 확인하기

--> object : 문자열

--> int64: 정수형 데이터

--> float64: 실수형 데이터

 

11) 데이터프레임이름.shape

# 데이터프레임의 행과 열의 개수 출력

 

 

12) 데이터프레임이름.values

--> 데이터프레임 형태를 Numpy 행렬 형태로 변환하여 출력함.

array([['Afghanistan', 0, 0, 0, 0.0, 'AS'],

        ['Albania', 89, 132, 54, 4.9, 'EU'],

        ['Algeria', 25, 0, 14, 0.7, 'AF'],

         ...,

        ['Yemen', 6, 0, 0, 0.1, 'AS'],

        ['Zambia', 32, 19, 4, 2.5, 'AF'],

        ['Zimbabwe', 64, 18, 4, 4.7, 'AF']], dtype=object)

 

# 데이터프레임 이름. valuse[0]

>>> array(['Afghanistan', 0, 0, 0, 0.0, 'AS'], dtype=object)

 

--> 0번째 행만 보여줌

--> 즉, for문 접근 가능! 

 

for i in drink_df.values[0]

    print(i)

 

>>> Afghanistan 0 0 0 0.0 AS

 

13) 데이터프레임이름.보고싶은열 (drink_df.beer_servings)

혹은, 데이터프레임이름['보고싶은 열']

--> 데이터 프레임 중 특정 열만 접근하는 방법! 

Select 칼럼명 from 테이블 명 

 

14) 시리즈(Series)란, 

2차원 테이블 형태를 데이터프레임이라고 부르지만, 이렇게 특정 하나의 열만을 불러올 경우에는 데이터프레임이 아니라 데이터타입이 판다스(Pandas)에서 제공하는 또 다른 데이터 타입인 '시리즈(Series)'가 됩니다. 

# 컬럼의 타입 확인

   type(drink_df.beer_servings)

   >>>pandas.core.series.Series

 

* 다수의 열에 접근 가능! 

 

15) 데이터프레임의 info

데이터프레임.info()

 

<class 'pandas.core.frame.DataFrame'>

RangeIndex: 193 entries, 0 to 192

Data columns (total 6 columns):

#   Column                     Non-Null Count   Dtype

---   ------                       --------------       -----

0    country                       193 non-null    object

1 beer_servings                  193 non-null     int64

2 spirit_servings                  193 non-null    int64

3 wine_servings                  193 non-null    int64

4 total_litres_of_pure_alcohol 193 non-null    float64

5 continent                       170 non-null    object

dtypes: float64(1), int64(3), object(2)

memory usage: 9.2+ KB

 

 

16) 데이터프레임명.describe()

-->  총 데이터의 수(count) / 평균(mean) / 표준편차(std) / 분위수(25%, 50%, 75%) 를 파악하여 출력합니다. 

하지만, 이는 숫자 즉, 수치 정보에 국한되어서 계산하므로 문자열 타입의 데이터은 안나옴! 

 

--->데이터프레임명.보고싶은열.decsribe() 쌉 가능! 

------> describe() 대신 mean() / max() / min() / sum() / count() 쌉가능~~~ 

 

* 평균 구하기! 

float(drink_df.beer_servings.sum()) / drink_df.beer_servings.count()

 

 

'파이썬' 카테고리의 다른 글

1_2 데이터프레임 문법(?)  (0) 2021.10.17
파이썬 시-작  (0) 2021.10.10