< 데이터 선택 Slice >
특정 컬럼만 읽기 : [ '컬럼명' ]
DataFrame 변수명 [ '컬럼명' ]
DataFrame 변수명 . 컬럼명
- 변수명.컬럼명 은 컬럼명이 문자열일때만 사용 가능하다.
숫자는 문자열로 지정했다고 하더라도 사용을 할수가 없다.
import pandas as pd
import numpu as np
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=['A', 'B', 'C', 'D'])
print(df['A'])
특정 행만 읽기 - [ 인덱스 번호 : 인덱스 번호 ]
DataFrame 변수명 [ 인덱스 번호:인덱스 번호 ]
DataFrame 변수명 [ '인덱스 이름':'인덱스 이름' ]
- offset index
[ n : m ] n부터 m-1까지
- 인덱스나 컬럼의 이름으로 slice하는 경우는 끝을 포함한다.
import pandas as pd
import numpu as np
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=['A', 'B', 'C', 'D'])
print(df['A'])
print(df[0:3])
print(df['20130102':'20130104'])
전체 행 읽기 - [ : ]
DataFrame 변수명 [ : ]
import pandas as pd
import numpu as np
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=['A', 'B', 'C', 'D'])
print(df[:])
특정 데이터만 읽기 : loc[ 행 slice, 컬럼 slice ]
DataFrame 변수명.loc[ 행 slice, 컬럼 slice ]
- loc : location
- Pandas의 보편적인 slice 옵션
- index 이름으로 특정 행, 열을 선택한다.
import pandas as pd
import numpu as np
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=['A', 'B', 'C', 'D'])
print(df.loc[:, ['A', 'B']])
print(df.loc['20130102':'20130104', ['A', 'B']])
print(df.loc['20130102', ['A', 'B']])
특정 데이터만 읽기 : iloc[ 번호 ]
DataFrame 변수명.iloc[ 인덱스 번호 or 인덱스 번호 slice ]
DataFrame 변수명.iloc[ 인덱스 번호 slice, 컬럼 번호 slice ]
- iloc : inter location, 컴퓨터가 인식하는 인덱스 값으로 선택
- iloc 옵션을 이용해서는 번호로만 접근 가능하다.
import pandas as pd
import numpu as np
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=['A', 'B', 'C', 'D'])
print(df.iloc[1:3])
print(df.iloc[3])
print(df.iloc[3:5, 0:2])
print(df.iloc[[1, 2, 4], [0, 2]])
< condition >
특정 데이터만 읽기 : [ 조건 ]
DataFrame 변수명 [ 조건 ]
DataFrame 변수명 [ '컬럼명' ] 조건
import pandas as pd
import numpu as np
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=['A', 'B', 'C', 'D'])
print(df['A'] > 0)
print(df[df['A'] > 0])
print(df[df > 0])
특정 요소가 있는지 확인 : isin( )
DataFrame 변수명 . isin( 데이터 )
DataFrame 변수명 . isin( [ 데이터, .... ] )
- 하나 이상의 .데이터를 찾을때는 리스트 형식으로 입력한다.
- 불린 형식으로 반환한다.
import pandas as pd
import numpu as np
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=['A', 'B', 'C', 'D'])
df['E'] = ['one', 'one', 'two', 'three', 'four', 'three']
df['E'].isin(['two', 'four'])
특정 요소가 있는 행만 선택 : [ isin( ) ]
DataFrame 변수명 [ 변수명 . isin( 데이터 또는 [데이터, ...] ) ]
DataFrame 변수명 [ 변수명['컬럼명'] . isin( 데이터 또는 [데이터, ...] ) ]
import pandas as pd
import numpu as np
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=['A', 'B', 'C', 'D'])
df['E'] = ['one', 'one', 'two', 'three', 'four', 'three']
print(
df[df['E'].isin(['two', 'four'])]
)
DataFrame에 함수 적용 : apply( )
DataFrame 변수명 . apply( numpy.함수명 )
DataFrame 변수명 . apply( 함수명 )
- 데이터프레임에 일괄적으로 함수(메소드)를 적용해주는 기능을 한다.
- numpy 모듈의 함수명을 사용할 수 있다.
cumsum : 누적합
sum : 합계
mean : 평균
- 사용자 함수를 만들어서 사용할 수도 있다.
import pandas as pd
import numpu as np
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=['A', 'B', 'C', 'D'])
print(df)
print(df.apply(np.cumsum))
print(df['A'].apply("sum"))
print(df['A'].apply(np.sum)
print(df['A'].apply("mean"))
print(df['A'].apply("min"), df['A'].apply("max"))
print(df[['C','D']].apply("sum"))
-- 출력 --
import pandas as pd
import numpu as np
def plusminus(num):
return "Plus" if num > 0 else "Minus"
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=['A', 'B', 'C', 'D'])
print(df)
print(df['A'].apply(plusminus))
-- 출력 --