In [1]:
from IPython.display import display, HTML
display(HTML("<style>.container { width:90% !important; }</style>"))
# 코드 입력창의 너비를 조정하는 코드입니다.
판다스 데이터프레임의 Indexing, Slicing¶
데이터프레임에서, 원하는 데이터를 access 하는 방법 3가지¶
- 컬럼의 데이터를 가져오는 방법 => 변수명 바로 오른쪽에 대괄호 사용
- .loc[ , ]로 가져오는 방법
- .iloc[ , ]로 가져오는 방법
아래 예제들을 통해 하나씩 알아보자.
In [2]:
import pandas as pd
In [3]:
items2 = [{'bikes': 20, 'pants': 30, 'watches': 35},
{'watches': 10, 'glasses': 50, 'bikes': 15, 'pants':5}]
In [4]:
df = pd.DataFrame(data= items2, index= ['store 1', 'store 2'])
In [5]:
df
Out[5]:
bikes | pants | watches | glasses | |
---|---|---|---|---|
store 1 | 20 | 30 | 35 | NaN |
store 2 | 15 | 5 | 10 | 50.0 |
In [41]:
### 1. 컬럼의 데이터를 가져오는 방법
### => 변수명 바로 오른쪽에 대괄호 사용
In [6]:
df['bikes']
Out[6]:
store 1 20 store 2 15 Name: bikes, dtype: int64
In [7]:
df['watches']
Out[7]:
store 1 35 store 2 10 Name: watches, dtype: int64
In [8]:
df['watches'][0]
Out[8]:
35
In [9]:
df[ ['bikes', 'watches'] ]
Out[9]:
bikes | watches | |
---|---|---|
store 1 | 20 | 35 |
store 2 | 15 | 10 |
In [ ]:
In [ ]:
### 2. 행과 열의 정보로, 데이터를 가져오는 방법 중
### .loc[ , ] 로 가져오는 방법
### 이 방법은 인덱스명과 컬럼명으로 데이터를 억세스한다.
In [10]:
df
Out[10]:
bikes | pants | watches | glasses | |
---|---|---|---|---|
store 1 | 20 | 30 | 35 | NaN |
store 2 | 15 | 5 | 10 | 50.0 |
In [11]:
# 스토어 1의 팬츠 데이터를 가져오시오
df.loc['store 1', 'pants']
Out[11]:
30
In [12]:
# 스토어 2에서, bikes와 watches 데이터를 가져오시오
df.loc['store 2', ['bikes', 'watches']]
Out[12]:
bikes 15.0 watches 10.0 Name: store 2, dtype: float64
In [14]:
# 스토어 2 행 전체를 가져오시오
df.loc['store 2', ]
Out[14]:
bikes 15.0 pants 5.0 watches 10.0 glasses 50.0 Name: store 2, dtype: float64
In [15]:
# 스토어 2에서, pants부터 glasses 까지의 데이터를 가져오시오
df.loc['store 2', 'pants':'glasses']
Out[15]:
pants 5.0 watches 10.0 glasses 50.0 Name: store 2, dtype: float64
In [ ]:
### 3. 행과 열의 정보로, 데이터를 가져오는 방법 중
### .iloc[ , ] 로 가져오는 방법
### 이 방법은, 컴퓨터가 매기는 인덱스(오프셋)으로 데이터를 억세스한다.
In [16]:
df
Out[16]:
bikes | pants | watches | glasses | |
---|---|---|---|---|
store 1 | 20 | 30 | 35 | NaN |
store 2 | 15 | 5 | 10 | 50.0 |
In [18]:
df.iloc[0, 1] # = df.loc[ 'store 1', 'pants']
Out[18]:
30
In [ ]:
# 스토어2 데이터에서, bikes 부터 watches 까지의 데이터를 가져오세요
In [19]:
df.iloc[1, 0:2+1]
Out[19]:
bikes 15.0 pants 5.0 watches 10.0 Name: store 2, dtype: float64
In [20]:
df.loc['store 2', 'bikes':'watches']
Out[20]:
bikes 15.0 pants 5.0 watches 10.0 Name: store 2, dtype: float64
In [ ]:
# 스토어1의 bikes, watches, glasses 데이터를 가져오시오
In [21]:
df.iloc[0, [0,2,3]]
Out[21]:
bikes 20.0 watches 35.0 glasses NaN Name: store 1, dtype: float64
In [22]:
df.loc['store 1', ['bikes', 'watches', 'glasses']]
Out[22]:
bikes 20.0 watches 35.0 glasses NaN Name: store 1, dtype: float64
'Python > Pandas' 카테고리의 다른 글
Pandas 활용(6) - 범주로 묶어 집계하기 groupby, agg (0) | 2022.11.27 |
---|---|
Pandas 활용(5) - 결측값(NaN) 처리 (0) | 2022.11.27 |
Pandas 활용(4) - 인덱스명, 컬럼명 변경 (0) | 2022.11.27 |
Pandas 활용(3) - 데이터프레임의 데이터 변경, 추가, 삭제 (0) | 2022.11.25 |
Pandas 활용 (1) - Series/DataFrame 생성, read_csv, to_csv (0) | 2022.11.24 |