반응형
Pandas import
Pandas 패키지를 설치하고 pd 라는 이름으로 import 해주는 것이 관례다.
import pandas as pd
데이터 프레임(Data Frame)
시리즈가 1차원 데이터 라면 데이터 프레임은 2차원 데이터로 행과 열을 가지게 되는 데이터 구조다.
시리즈가값, 인덱스로 구성 되었다면, 데이터 프레임은값, 인덱스, 열(columns)로 구성된다.
데이터 프레임 생성
값, 인덱스, 열 세개의 구성 요소를 넣고 데이터 프레임을 생성해 보자.
3 x 3인 2차원 데이터가 만들어진다.
index 가 행이 되고, columns가 열이된다.
import pandas as pd
values = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
index = ['1행', '2행', '3행']
columns = ['1열', '2열', '3열']
df = pd.DataFrame(values, index=index, columns=columns)
print(df)
<결과>
1열 2열 3열
1행 1 2 3
2행 4 5 6
3행 7 8 9
값, 인덱스, 열 출력
값, 인덱스, 열은 다음과 같이 출력 가능하다.
print("값 : \n", df.values)
print("인덱스(행): ", df.index)
print("열 : ", df.columns)
<결과>
값 :
[[1 2 3]
[4 5 6]
[7 8 9]]
인덱스(행): Index(['1행', '2행', '3행'], dtype='object')
열 : Index(['1열', '2열', '3열'], dtype='object')
리스트로 데이터 프레임 생성
리스트로 데이터 프레임을 생성 예제다.
2차원 데이터만 넘겨주고, 인덱스와 열의 이름을 지정하지 않아 이름이 숫자로 채워진다.
import pandas as pd
data = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
df = pd.DataFrame(data)
print(df)
<결과>
0 1 2
0 1 2 3
1 4 5 6
2 7 8 9
인덱스 지정 해주기
index(행) 의 이름을 지정해주는 예제다.
import pandas as pd
data = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
index = ['1행','2행','3행']
df = pd.DataFrame(data, index=index)
print(df)
<결과>
0 1 2
1행 1 2 3
2행 4 5 6
3행 7 8 9
열 지정 해주기
columns(열) 의 이름을 지정해 주는 예제다.
import pandas as pd
data = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
index = ['1행','2행','3행']
columns = ['1열','2열','3열']
df = pd.DataFrame(data, index=index, columns=columns)
print(df)
<결과>
1열 2열 3열
1행 1 2 3
2행 4 5 6
3행 7 8 9
딕셔너리로 데이터 프레임 생성
딕셔너리로 데이터 프레임 생성이 가능하다.
import pandas as pd
data = {
'1열' : [1, 2, 3],
'2열' : [4, 5, 6],
'3열' : [7, 8, 9]
}
index = ['1행','2행','3행']
df = pd.DataFrame(data, index=index)
print(df)
<결과>
1열 2열 3열
1행 1 4 7
2행 2 5 8
3행 3 6 9
df.head()
head() 메서드는 처음 부터 n개 까지 조회한다.
주의 할 점은 n의 시작이 1부터다.
import pandas as pd
data = {
'1열' : [1, 2, 3],
'2열' : [4, 5, 6],
'3열' : [7, 8, 9]
}
index = ['1행','2행','3행']
df = pd.DataFrame(data, index=index)
print(df.head(2))
<결과>
1열 2열 3열
1행 1 4 7
2행 2 5 8
df.tail()
tail() 메서드는 head() 와 다르게 뒤 에서부터 n개를 출력한다.
import pandas as pd
data = {
'1열' : [1, 2, 3],
'2열' : [4, 5, 6],
'3열' : [7, 8, 9]
}
index = ['1행','2행','3행']
df = pd.DataFrame(data, index=index)
print(df.tail(2))
<결과>
1열 2열 3열
2행 2 5 8
3행 3 6 9
열 조회하기
보고 싶은 열의 이름을 적으면 해당 열을 출력한다.
import pandas as pd
data = {
'1열' : [1, 2, 3],
'2열' : [4, 5, 6],
'3열' : [7, 8, 9]
}
index = ['1행','2행','3행']
df = pd.DataFrame(data, index=index)
print(df['2열'])
<결과>
1행 4
2행 5
3행 6
열의 특정 값 조회하기
loc 속성을 사용해 행의 시퀀스와 조회하고 싶은 열을 적어주면 된다.
예제에서는 2번째 행, 2번째 열을 조회한다.
import pandas as pd
data = {
'1열' : [1, 2, 3],
'2열' : [4, 5, 6],
'3열' : [7, 8, 9]
}
df = pd.DataFrame(data)
print(df.loc[1,'2열'])
<결과>
5
행 조회하기
인덱스 접근에는 명시적 인덱스 접근, 암시적 인덱스 접근이 있다.
명시적 인덱스 접근은 인덱스(행)의 이름을 적어주고,
암시적 인덱스 접근 은 인덱스(행)의 시퀀스를 적어준다.
명시적 인덱스 접근
loc 속성을 사용해 index의 이름으로 조회한다.
시퀀스를 적으면 에러가 발생한다.
import pandas as pd
data = {
'1열' : [1, 2, 3],
'2열' : [4, 5, 6],
'3열' : [7, 8, 9]
}
index = ['1행','2행','3행']
df = pd.DataFrame(data, index=index)
print(df.loc['2행'])
<결과>
1열 2
2열 5
3열 8
Name: 2행, dtype: int64
암시적 인덱스 접근
명시적 접근과 반대로 인덱스에 주어진 이름 대신 시퀀스(숫자)를 적는다.
이때 iloc 속성을 사용해준다.
예제에서 1행, 2행, 3행은 각각 암시적으로 0, 1, 2 로 볼 수 있다.
import pandas as pd
data = {
'1열' : [1, 2, 3],
'2열' : [4, 5, 6],
'3열' : [7, 8, 9]
}
index = ['1행','2행','3행']
df = pd.DataFrame(data, index=index)
print(df.iloc[1])
<결과>
1열 2
2열 5
3열 8
Name: 2행, dtype: int64
반응형
'Python' 카테고리의 다른 글
[Python] 파이썬 TKinter 모듈로 GUI 만들기 (0) | 2024.03.03 |
---|---|
[Python] 판다스(Pandas) : CSV 파일 읽어오기 (0) | 2024.02.10 |
[Python] 판다스(Pandas) : 시리즈(Series) 사용법 정리 (0) | 2024.02.10 |
[Python] 판다스(Pandas) 총정리 / 시리즈(Series)/ 데이터 프레임(data frame)/ csv 파일 읽어오기 (1) | 2024.02.10 |
[Python] 파이썬 그래프 그리기/ matplotlib 패키지 사용법 (1) | 2024.02.08 |