[Python] 판다스(Pandas) - DataFrame
저번 시간엔 Series를 봤는데요 이번 시간엔 한 차원을 더 나아가 DataFrame을 보도록 하겠습니다.
판다스 데이터프레임
- 판다스 데이터프레임은 다음 그림과같이 행과 열로 구성된 2차원 데이터(엑셀 데이터)를 다루는데 효과적인 자료구조입니다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from pandas import DataFrame
import pandas as pd
import numpy as np
딕셔너리 = {
"x" : [10,40],
"y" : [20,30]
}
df = DataFrame(딕셔너리)
df
>>> x y
>>>0 10 20
>>>1 40 30
이렇게 딕셔너리를 만들어 준뒤 DataFrame()메서드에 파라미터로 넣어주어서 만듭니다. numpy를 시작으로 파이썬의 여러가지 수학 라이브러리들은 벡터연산을 기본으로 해야하기 때문에 열벡터로 나타낸 복수의 벡터로 나옵니다.
1
2
3
4
5
6
7
8
9
10
11
리스트 = [
[10,20],
[30,40]
]
df = DataFrame(리스트)
df
>>> 0 1
0 10 20
1 30 40
딕셔너리 뿐만 아니라 2차원 리스트를 넣으면 그 모양대로 이쁘게 데이터프레임으로 나오네요 ㅎㅎ
그리고 생성된 df에
1
2
df.index = ["x",'y']
df.columns=["a","b"]
이렇게 주면 index는 열방향으로 맨 왼쪽에 커스텀 인덱스가 들어가고 columns는 행방향으로 생깁니다.
이렇게요..
쉽게 이야기 하자면, 데이터 프레임의 각 컬럼이 하나의 series이거나 반대로 row가 series가 될 수 도 있습니다.
1
2
3
df[df["시가"] >=90]["종가"]
cond = df["시가"]>=90
df.loc[ cond, ["시가",'종가']]
이것은 조건을 만들어서 그 조건을 대응해보는 것인데요, df[‘시가’] >=을 하면 변수 cond엔 True와 False만 있는 Series로 반환해줍니다. 그리고 그것을 df.loc[]에 넣으면 True에 대응되는 원소만 출력이 되어서 결과적으로 우리가 원하는 조건을 만족하는 df를 볼 수 있게 됩니다.
1
2
3
4
5
6
7
8
df = DataFrame({
'sex' : ['m', 'm', 'w', 'm', 'w'],
'weight' : [76, 88, 54, 70, 45],
'height' : [176, 190, 148, 177, 155]
})
df_ =df.groupby("sex")
df_.get_group("m")
이것은 groupby()메서드를 사용하여 한 series안의 unique값들을 모아주어 분류를 합니다. 그리고 그 그룹만 출력하거나 다른 용도로도 쓰일 수 있습니다~
이번 시간엔 여기까지 하겠습니다!
This post is licensed under CC BY 4.0 by the author.
Comments powered by Disqus.