대부분의 상황에서 우리가 DataFrame을 만드는 일은 없을 것이다.
웬만하면 csv파일로 불러오거나 외부의 소스를 활용할 것이기 때문이다.
하지만 DataFrame을 이해할 겸, 혹은 추후에 간단한 DataFrame을 직접 만들어 테스트용으로 사용할 수도 있기 때문에 생성하는 방법은 간략히만 공부해 보도록 하자.
우선 pandas를 불러주고
import pandas as pd
DataFrame을 만드는 방법은 dict로 부터 혹은 series로 부터 두 가지다. 우선 dict로 만들어보자.
- dictionary로부터 DataFrame 생성하기
dict의 key가 column이 된다.
# <in>
data = {'a' : 100, 'b' : 200, 'c' : 300}
pd.DataFrame(data, index=['x', 'y', 'z'])
# <out>
dict의 key값인 a, b, c가 column으로 들어가고 DataFrame의 인덱스인 x, y, z 가 index명으로 들어가는 것을 확인할 수 있다.
value값을 고정으로 주지 않기 위해서는 DataFrame의 index의 개수와 dict의 key값이 개마다 가지고 있는 원소의 개수가 같아야 한다.
그런 경우 value값을 list안에 넣어서 입력한다.
# <in>
data = {'a' : [1, 2, 3], 'b' : [4, 5, 6], 'c' : [10, 11, 12]}
pd.DataFrame(data, index=[0, 1, 2])
# <out>
- Series로부터 생성하기
각 Series의 인덱스는 DataFrame의 column이 된다.
# <in>
a = pd.Series([100, 200, 300], ['a', 'b', 'd'])
b = pd.Series([101, 201, 301], ['a', 'b', 'k'])
c = pd.Series([110, 210, 310], ['a', 'b', 'c'])
pd.DataFrame([a, b, c], index=[100, 101, 102])
# <out>
여기서 주의할 점은 만약 Series의 인덱스 값이 모두 같지 않은 경우, pandas가 DataFrame의 인덱스가 갖지 않는 컬럼에 대한 value 값에 대해서 NaN값을 반환한다.
위의 경우 인덱스100의 경우 컬림c,k에 대해 값을 가지고 있지 않아 NaN을 DataFrame상에 갖고 있다.
'python > pandas' 카테고리의 다른 글
10. pandas - DataFrame의 [column] 선택 출력 (0) | 2023.02.18 |
---|---|
9. pandas DataFrame - csv 파일로부터 DataFrame 생성 (0) | 2023.02.18 |
7. pandas DataFrame - index, column의 이해 (0) | 2023.02.17 |
6. pandas DataFrame - 데이터 살펴보기 (0) | 2023.02.17 |
5. pandas Series 슬라이싱 (0) | 2023.02.17 |