데이터프레임에 Data accessing 해보자!¶
판다스 데이터 프레임에서, 데이터를 억세스하는 방법에는 3가지가 있다. 하나씩 해보자
컬럼의 값을 가져와보자. DataFrame[대괄호]¶
In [1]:
import pandas as pd
In [2]:
items = [{'bikes': 20, 'pants': 30, 'watches': 35},
{'watches': 10, 'glasses': 50, 'bikes': 15, 'pants':5}]
In [4]:
df = pd.DataFrame(data = items, index = ['store1', 'store2'])
In [5]:
df
Out[5]:
bikes | pants | watches | glasses | |
---|---|---|---|---|
store1 | 20 | 30 | 35 | NaN |
store2 | 15 | 5 | 10 | 50.0 |
In [6]:
df['pants'] # 1차원이라 판다스 시리즈로 출력됨
Out[6]:
store1 30 store2 5 Name: pants, dtype: int64
In [7]:
df.pants # 이렇게도 할 수 있지만 추천하지 않는다. 나중에 속성이랑 헷갈릴 수 있기 때문이다.
Out[7]:
store1 30 store2 5 Name: pants, dtype: int64
In [8]:
df[['pants', 'glasses']] # 여러개를 가져오고 싶으면 리스트에 넣어서 데이터 억세싱하면 된다.
Out[8]:
pants | glasses | |
---|---|---|
store1 | 30 | NaN |
store2 | 5 | 50.0 |
행과 열의 정보로, 데이터를 가져와 보자. loc[ ]¶
loc를 이용하면 사람용인 인덱스와 컬럼명으로 데이터 억세스를 할 수 있다.
loc의 대괄호 안에는 가져오고싶은 [ 행, 열 ] 의 이름을 넣어주면 된다. 즉 [ 인덱스, 컬럼명 ] 이다.
In [9]:
df
Out[9]:
bikes | pants | watches | glasses | |
---|---|---|---|---|
store1 | 20 | 30 | 35 | NaN |
store2 | 15 | 5 | 10 | 50.0 |
In [10]:
df.loc['store1', ]
Out[10]:
bikes 20.0 pants 30.0 watches 35.0 glasses NaN Name: store1, dtype: float64
In [11]:
df.loc['store1', 'pants']
Out[11]:
30
In [12]:
df.loc['store1', ['bikes', 'watches']] #여러개의 데이터가 필요할때는, 리스트에 넣는다.
Out[12]:
bikes 20.0 watches 35.0 Name: store1, dtype: float64
In [13]:
df.loc['store2', 'pants' : 'glasses'] #~부터 ~까지 를 콜론(:)으로 표시하여 데이터를 가져올 수 있다.
Out[13]:
pants 5.0 watches 10.0 glasses 50.0 Name: store2, dtype: float64
행과 열의 정보로, 데이터를 가져와 보자. iloc[ ]¶
이번에도 행과 열의 정보로 데이터를 가져올 것이다. 다만 다른것은 이번에 쓰이는 정보가
컴퓨터가 자동으로 매기는 인덱스인 것이다. 리스트에서 그렇듯이 컴퓨터는 0부터 자동으로 인덱스를 매긴다
리스트에서 인덱스를 가져왔던 것의 확장판이라고 생각해도 좋을듯하다.
In [14]:
df
Out[14]:
bikes | pants | watches | glasses | |
---|---|---|---|---|
store1 | 20 | 30 | 35 | NaN |
store2 | 15 | 5 | 10 | 50.0 |
In [16]:
df.iloc[0, 1] # i는 인덱스의 약자이다
Out[16]:
30
In [17]:
df.iloc[ 0 , [0, 2] ] # 여러개의 데이터가 필요할때는, 리스트에 넣는다.
Out[17]:
bikes 20.0 watches 35.0 Name: store1, dtype: float64
In [18]:
df.iloc[0, 1:3+1] # 리스트처럼 끝 인덱스를 포함하지 않고 가져오기에 +1을 해서 가져와야한다.
Out[18]:
pants 30.0 watches 35.0 glasses NaN Name: store1, dtype: float64
'넘파이&판다스' 카테고리의 다른 글
[Pandas] 판다스 데이터프레임, 행과 열 추가하기 (0) | 2021.11.21 |
---|---|
[Pandas] 데이터프레임 값 변경하기 (0) | 2021.11.21 |
[Pandas] csv 파일을 데이터프레임으로, 데이터프레임을 csv로 저장하기! (Unnamed: 0 해결하기), read_csv, to_csv (0) | 2021.11.21 |
[Pandas] 판다스 2차원 데이터, 데이터 프레임 생성하기, pandas.DataFrame (0) | 2021.11.21 |
[Pandas] 판다스 1차원 데이터, 시리즈에서 원하는 조건만 가져와보자!비교연산자 사용하기(<,>, <=, >=) (0) | 2021.11.21 |