DataFrame으로 dummy data 생성하기
import pandas as pd
import numpy as np
pandas.DataFrame
pandas.DataFrame( data, index, columns, dtype, copy ) | |
data | ndarray, series, map, lists, dict, 상수 그리고 또 다른 DataFrame까지 변수의 형태로 가질 수 있다. |
index | Index or array-like : row 레이블의 경우, 인덱스 값이 없으면 0-based index (np.arange(n))가 기본으로 사용된다. |
columns | Index or array-like : column 레이블의 경우, 인덱스 값이 없으면 0-based index (np.arange(n))가 기본으로 사용된다. |
dtype | 각 column 마다 데이터 유형을 나타낸다. |
copy | 이 속성의 기본값이 False인 경우 데이터 복사에 사용된다. |
리스트로 DataFrame 생성하기
1. 싱글 리스트
리스트로 DataFrame을 만들 때, columns 값을 따로 지정하지 않으면 0-based index (np.arange(n))가 기본으로 사용된다.
>>> data = [1, 2, 3, 4, 5]
>>> df = pd.DataFrame(data)
>>> print(df)
0
0 1
1 2
2 3
3 4
4 5
2. 다중 리스트
columns에 리스트 형식으로 이름을 따로 지정하면, DataFrame의 column에 이름을 지정한 순서대로 feature을 부여하게 된다.
>>> data = [ [ 'Alex', 10 ], [ 'Bob', 12 ], [ 'Clarke', 13 ] ]
>>> df = pd.DataFrame( data, columns = [ 'Name', 'Age' ] )
>>> print(df)
Name Age
0 Alex 10
1 Bob 12
2 Clarke 13
Dict로 DataFrame 생성하기
딕셔너리로 DataFrame을 생성할 때, 딕셔너리의 key 값이 DataFrame의 column 역할을 하고, value 값이 DataFrame의 data 역할을 한다. 이때, value의 길이는 1 이거나, 모든 value의 길이가 동일해야 한다.
Index 값을 따로 지정하지 않으면 0-based index (np.arange(n))가 기본으로 사용된다.
>>> data = { 'a' : 100, 'b' : [ 10, 20, 30, 40 ] }
>>> df = pd.DataFrame(data, index = np.arange(4) )
>>> print(df)
a b
0 100 10
1 100 20
2 100 30
3 100 40
Index에 리스트 형식으로 이름을 따로 지정하면, DataFrame의 Index에 순서대로 이름을 부여하게 된다.
>>> data = { 'Name' : [ 'Tom', 'Jack', 'Steve', 'Ricky' ], 'Age' : [ 28, 34, 29, 42 ] }
>>> df = pd.DataFrame(data, index = [ 'rank 1', 'rank 2', 'rank 3', 'rank 4' ] )
>>> print(df)
Age Name
rank 1 28 Tom
rank 2 34 Jack
rank 3 29 Steve
rank 4 42 Rciky
Dict로 구성된 리스트로 DataFrame 생성하기
리스트의 Index 순서대로, 각각의 요소가 하나의 row로 들어가게 된다.
리스트안의 Dict에서 key값은 column, value값은 data의 역할을 하며, 비어있는 부분은 NaN (Not a Number)로 채워지게 된다.
>>> data = [ { 'a' : 1, 'b' : 2 }, { 'a' : 5, 'c' : 20} ]
>>> df = pd.DataFrame(data)
>>> print(df)
a b c
0 1 2.0 NaN
1 5 NaN 20.0
여기서 DataFrame을 생성할 때, column의 이름을 지정하게 되면, column의 이름과 동일한 key의 value값만 data로써 역할을 한다.
이때, column의 이름과 동일한 key값이 없으면 NaN으로 채워지게 된다.
>>> data = [ { 'a' : 1, 'b' : 2 }, { 'a' : 5, 'c' : 20} ]
>>> df1 = pd.DataFrame(data, index = [ 'first', 'second' ], columns = [ 'a', 'b' ] )
>>> df2 = pd.DataFrame(data, index = [ 'first', 'second' ], columns = [ 'a', 'b1' ] )
>>> print(df1)
>>> print(df2)
a b
first 1 2.0
second 5 NaN
a b1
first 1 NaN
second 5 NaN
Series로 DataFrame 생성하기
Series는 pandas로 생성할 수 있는 1차원 형태의 데이터이다.
각 Series의 index가 column의 역할을 한다.
>>> a = pd.Series([100, 200, 300], ['a', 'b', 'd'])
>>> b = pd.Series([101, 202, 303], ['a', 'b', 'k'])
>>> c = pd.Series([110, 220, 330], ['a', 'b', 'c'])
>>> df = pd.DataFrame([a, b, c])
>>> print(df)
a b d k c
0 100.0 200.0 300.0 NaN NaN
1 101.0 202.0 NaN 303.0 NaN
2 110.0 220.0 NaN NaN 330.0
Series로 구성된 Dict로 DataFrame 생성하기
Dict의 value로 Series형태가 들어갔다면, 각 Series의 index는 DataFrame의 index 역할을 한다.
>>> d = { 'one' : pd.Series( [1, 2, 3], [ 'a', 'b', 'c' ] ), 'two' : pd.Series( [1, 2, 3, 4], [ 'a', 'b', 'c', 'd' ] ) }
>>> df = pd.DataFrame(d)
>>> print(df)
one two
a 1.0 1
b 2.0 2
c 3.0 3
d NaN 4
'데이터 사이언스 메뉴얼 > pandas' 카테고리의 다른 글
파이썬 Pandas NaN 데이터 처리하기 (0) | 2020.03.17 |
---|---|
파이썬 Pandas DataFrame column 추가 / 삭제하기 (0) | 2020.03.16 |
파이썬 Pandas Data 선택하기 (0) | 2020.03.12 |
파이썬 Pandas DataFrame 생성하기 - 2 (0) | 2020.02.29 |
파이썬 Pandas DataFrame 구조 이해하기 (0) | 2020.02.27 |
최근댓글