본문 바로가기
대학교/데이터분석개론

5.2-Python Pandas_DataFrame

by YS_LEE 2020. 6. 12.
반응형

준비물

import pandas as pd

import numpy as np

 

Viewing Data

 

df.head()

df.tail()

df.index

df.columns

df.values

 

df.describe()

df.sort_values(by='b") # df.sort_values(by='B', ascending=False)

b 라는 특정 컬럼의 value를 기준으로 정렬

 

Selection

 

df['A']

df[['A','C']] #대괄호 두개에 유의

 

#Slicing rows

df[0:3]

 

#Select by label(s)

df.loc (라벨값 기반의 2차원 인덱싱)

df.loc[행 인덱싱값]

df.loc[행 인덱싱값, 열 인덱싱값]

예시)

df.loc[date[0]] 

df.loc[:,['A','B']] #열 인덱싱

df.loc["B":"C"] #df["B":"C"] 랑 동일

df.loc[df.A> 10] # def select_rows(df): return df.A>10 등 함수나 마스크 사용가능

 

인덱서가 없는 경우에 사용했던 라벨 인덱싱이나 라벨 리스트 인덱싱은 불가능하다.

 

 

#Selection by position

df.iloc (순서를 나타내는 정수 기반의 2차원 인덱싱)

iloc 인덱서는 loc 인덱서와 반대로 라벨이 아니라 순서를 나타내는 정수(integer) 인덱스만 받는다.

다른 사항은 loc 인덱서와 같다.

 

예시)

df.iloc[:2, 2]

df.iloc[0,-2:]

df.iloc[2:3,1:3]

 

#Access a single value

df.at (at: 라벨값 기반의 2차원 인덱싱 (한개의 스칼라 값만 찾는다))

df.iat (순서를 나타내는 정수 기반의 2차원 인덱싱 (한개의 스칼라 값만 찾는다))

특징은 인덱싱 속도가 매우 빠르다.

 

#Boolean indexing

df.A > 0

df[df.A >0]

df[df['E'].isin(['뺙뺙','칙칙폭폭'])]

 

#Insert a column from series

s1=pd.Series([아무배열], index=pd.date_range('20130102', period=6)) 

df['F']=s1

 

#date_range를 이용하여 하루간격으로 2013-01-01~2013-01-06까지 index가 붙는다

#아무배열 예를 들면 [1,2,3,4,5,6]

#이러면 F라는 새 컬럼이 생긴다.

 

#Conform to a new index (기존 존재하는 데이터로 새로운 DF 만들기)

df1 = df.reindex(index=dates[0:4], columns=list(df.columns) + ['E'])

df1.loc[dates[0]:dates[1],'E'] = 1


#기존 df 에서 2013-01-01~04에서의 값을 확인하고 싶을 때, ['E']는 그냥 비어있는 column

 

#Detect missing values

pd.isnull(df1)

 

#Remove missing values

df1.dropna(how = 'any')   # remove row(s) or column(s) if any NA values are present

df1.dropna(how='all')   # remove row(s) or column(s) if all values are NA

 

Missing value를 Remove 하는 Data_Cleaning 은 다음 포스트 참조

반응형

'대학교 > 데이터분석개론' 카테고리의 다른 글

5-4.Python Pandas_DataHandling  (0) 2020.06.12
5-3.Python Pandas_DataCleaning  (0) 2020.06.12
5-1.Python Pandas_Series  (0) 2020.06.12
4.Pyplot Visualization  (0) 2020.06.08
3.Python Numpy  (0) 2020.06.08