3. 데이터 선택하기 (Data Selection)
.iloc.locindex slicingpandas

특정 열 선택

DataFrame이 가지고 있는 []를 이용해 슬라이싱하여 출력하는 방법입니다. 특정 열 값만 가지고 오고 싶다면'데이터프레임명'['Column명']과 같은 형태로 입력합니다. 이는 df.A와 동일합니다. 리턴되는 값은 Series의 자료구조를 가지고 있습니다.

print(df['A']) # 'A'
print(df.A) #

특정 행 선택

특정 행 추출과 특정 행 범위 추출은 사용하는 방식이 다릅니다. 특정 행 및 행 범위 추출을 위해서는 인덱스 슬라이싱 기법을 사용해야 합니다.

print(df[0:3]) #
print(df['20130102' : '20130104']) #
print(df['20130102' : '20130102']) #

.loc (이름을 이용한 데이터 선택)

라벨의 이름을 이용하여 선택할 수 있는 .loc 속성도 있습니다. 첫 번째 인덱스 값인 '2013-01-01'에 해당하는 모든 컬럼의 값 가져오기와 같은 작업을 수행할 수 있습니다.

print(df.loc[dates[0]]) # dates[0]
print(df.loc[:, ['A', 'B']]) # , 'A' 'B'
print(df.loc['20130102':'20130104',['A','B']]) # '20130102':'20130104', 'A' 'B'

.iloc (위치를 이용한 데이터 선택)

위치를 나타내는 인덱스 번호를 사용하여 데이터를 선택할 수 있습니다.

print(df.iloc[3]) # 3
print(df.iloc[3:5, 0:2]) # 3:5 , 0:2
print(df.iloc[:, 1:3]) # , 1:3
print(df.iloc[:, 1:3].name)

조건을 이용한 데이터 선택

특정한 행이나 열에 조건을 달아 만족하는 행이나 열만 선택하여 데이터를 추출할 수 있습니다.

isin()

필터링을 해야 하는 경우에 사용합니다.

print(df[df.A > 0]) # 'A' 0
print(df[df > 0] # 0
print(df['E'] = ['one', 'one','two','three','four','three']) # df 'E'
print(df[df['E'].isin(['two', 'four'])]) # 'E' 'two', 'four'


'Machine Learning > Pandas' 카테고리의 다른 글

[Pandas] 데이터 확인하기  (2) 2018.11.29
[Pandas] 데이터 오브젝트 생성  (0) 2018.11.29
2. 데이터 확인하기 (Viewing Data)
.columns.index.T.valuedescribe()head()pandassortsort_indexsort_valuetail()Transpose

DataFrame에 들어있는 자료들을 확인하기 메서드를 몇 가지 살펴보도록 하겠습니다.

head(), tail()

DataFrame의 첫 부분, 마지막 부분의 데이터를 보고싶을 때 사용하는 메서드입니다. 파라미터로 숫자를 넣으면 해당 숫자만큼의 데이터가 출력됩니다.

import pandas as pd
import numpy as np
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))
print('\n')
print(df.head(5))
print('\n')
print(df.tail(3))

.index / .columns / .value

DataFrame의 행를 보려면 .index를, 열을 보려면 .column, numpy 데이터를 보려면 .value 속성을 통해 확인하면 됩니다.

print('\n')
print(df.index)
print('\n')
print(df.columns)
print('\n')
print(df.values)

describe()

DataFrame에 대한 간단한 통계 정보를 출력합니다.

  • 컬럼별 데이터 개수(Count)
  • 데이터 평균 값(Mean)
  • 표준편차 (Standard)
  • 최소값 (Minimum)
  • 최대값 (Maximum)
  • 4분위수(Quantile / 25%, 50%, 75%)
print(df.describe())

.T (Transpose)

.T 속성은 DataFrame에서 행과 열을 바꾼 형태의 DataFrame을 출력합니다.

print(df.T)

sort_index() / sort_value()

sort_index()

행과 열 이름을 정렬하여 나타낼 수 있습니다. 정렬할 대상 축을 결정할 때에는 axis 파라미터를 이용합니다.  axis = 0은 행를 기준(행)으로, axis = 1 컬럼을 기준으로 정렬하겠다는 뜻입니다. 정렬의 방향은 ascending파라미터를 사용합니다. ascending = True는 오름차순, ascending = False는 내림차순을 의미합니다.

axis

  • axis = 0 # 행 기준 정렬
  • axis = 1 # 열 기준 정렬

ascending

  • ascending = True # 오름차순 정렬
  • ascending = False # 내림차순 정렬

sort_value()

DataFrame 내부에 있는 값으로 정렬할 수 있습니다.

print(df.sort_index(axis = 1, ascending = False))
print(df.sort_value(by = 'B', ascending = True))




'Machine Learning > Pandas' 카테고리의 다른 글

[Pandas] 데이터 선택하기  (0) 2018.11.29
[Pandas] 데이터 오브젝트 생성  (0) 2018.11.29
1. 데이터 오브젝트 생성
DataFrame()pandasseries()

Pandas에서 제공하는 자료 구조들을 확인하려면 https://pandas.pydata.org/pandas-docs/stable/dsintro.html#dsintro를 참고하면 됩니다.

Reference

https://dandyrilla.github.io/2017-08-12/pandas-10min/#ch1

series()

Pandas의 데이터 구조 중 하나인 Series는 다음과 같이 값들의 리스트를 넘겨주어 만들게 됩니다. 인덱스는 기본적으로 지정되는 정수 인덱스를 사용합니다.

import pandas as pd
import numpy as np
s = pd.Series([1, 3, 5, np.nan, 6, 8])
print(s)

DataFrame()

import pandas as pd
import numpy as np
# s = pd.Series([1, 3, 5, np.nan, 6, 8])
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))
df2 = pd.DataFrame({'A': 1.,
'B': pd.Timestamp('20130102'),
'C': pd.Series(1, index=list(range(4)), dtype='float32'),
'D': np.array([3]*4, dtype='int32'),
'E': pd.Categorical(['test', 'train', 'test', 'train']),
'F': 'foo'})
# DataFrame
print(df)
print('\n')
print(df2)
# DataFrame Column
print(df2.dtypes)


'Machine Learning > Pandas' 카테고리의 다른 글

[Pandas] 데이터 선택하기  (0) 2018.11.29
[Pandas] 데이터 확인하기  (2) 2018.11.29

+ Recent posts