Pandas 튜토리얼에 있는 Lessons for new pandas users_04에 대한 내용이다.

본 장에서는 새로운 열(columns)을 추가, 삭제하고, 데이터를 슬라이싱(slicing)하는 여러 가지 방법을 다룬다.

In [1]:
# 라이브러리 임포트하기
import pandas as pd
In [2]:
# 데이터셋 만들기
d = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 데이터프레임 만들기
df = pd.DataFrame(d)
df
Out[2]:
0
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
In [3]:
# 열(column)의 이름 변경하기
df.columns = ['Rev']
df
Out[3]:
Rev
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
In [4]:
# 열(column) 추가하기
df['NewCol'] = 5
df
Out[4]:
Rev NewCol
0 0 5
1 1 5
2 2 5
3 3 5
4 4 5
5 5 5
6 6 5
7 7 5
8 8 5
9 9 5
In [5]:
# 새로 만든 열(column) 수정하기
df['NewCol'] = df['NewCol'] + 1
df
Out[5]:
Rev NewCol
0 0 6
1 1 6
2 2 6
3 3 6
4 4 6
5 5 6
6 6 6
7 7 6
8 8 6
9 9 6
In [6]:
# 열(column) 삭제하기
del df['NewCol']
df
Out[6]:
Rev
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
In [7]:
# 두 개의 열(column) 추가하기
df['test'] = 3
df['col'] = df['Rev']
df
Out[7]:
Rev test col
0 0 3 0
1 1 3 1
2 2 3 2
3 3 3 3
4 4 3 4
5 5 3 5
6 6 3 6
7 7 3 7
8 8 3 8
9 9 3 9
In [8]:
# 인덱스(index)의 이름 변경하기
i = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
df.index = i
df
Out[8]:
Rev test col
a 0 3 0
b 1 3 1
c 2 3 2
d 3 3 3
e 4 3 4
f 5 3 5
g 6 3 6
h 7 3 7
i 8 3 8
j 9 3 9

loc 을 이용하여 데이터프레임의 일부를 선택할 수 있다.

In [9]:
df.loc['a']
Out[9]:
Rev     0
test    3
col     0
Name: a, dtype: int64
In [10]:
# df.loc[inclusive:inclusive]
df.loc['a':'d']
Out[10]:
Rev test col
a 0 3 0
b 1 3 1
c 2 3 2
d 3 3 3
In [11]:
# df.iloc[inclusive:exclusive]
df.iloc[0:3]
Out[11]:
Rev test col
a 0 3 0
b 1 3 1
c 2 3 2

ilocloc와 달리 순서를 나타내는 정수형(integer) 인덱스만 받는다.

열(column) 이름을 사용하여 열을 선택할 수 있다.

In [13]:
df['Rev']
Out[13]:
a    0
b    1
c    2
d    3
e    4
f    5
g    6
h    7
i    8
j    9
Name: Rev, dtype: int64
In [14]:
df[['Rev', 'test']]
Out[14]:
Rev test
a 0 3
b 1 3
c 2 3
d 3 3
e 4 3
f 5 3
g 6 3
h 7 3
i 8 3
j 9 3
In [16]:
# df.ix[row, columns]
# ix 함수 대체하기
# df.ix[0:3, 'Rev']
df.loc[df.index[0:3], 'Rev']
Out[16]:
a    0
b    1
c    2
Name: Rev, dtype: int64
In [17]:
# ix 함수 대체하기
# df.ix[5:, 'col']
df.loc[df.index[5:], 'col']
Out[17]:
f    5
g    6
h    7
i    8
j    9
Name: col, dtype: int64
In [18]:
# ix 함수 대체하기
# df.ix[:3, ['col', 'test']]
df.loc[df.index[:3], ['col', 'test']]
Out[18]:
col test
a 0 3
b 1 3
c 2 3

데이터프레임의 처음 또는 끝에 있는 관측치(observation)를 확인하려면 다음과 같이 하면 된다.

In [19]:
df.head()
Out[19]:
Rev test col
a 0 3 0
b 1 3 1
c 2 3 2
d 3 3 3
e 4 3 4
In [20]:
df.tail()
Out[20]:
Rev test col
f 5 3 5
g 6 3 6
h 7 3 7
i 8 3 8
j 9 3 9