본문 바로가기
Data_Analysis/Numpy, Pandas

[Pandas] DataFrame 생성

by Classic! 2020. 7. 21.

[DataFrame]

: 2차원 배열 형식의 table형 자료구조.

- 여러 개의 컬럼을 가지며, 컬럼의 데이터 타입은 서로 다를 수 있음.

 

 

[DataFrame 생성]


1) 리스트의 값을 딕셔너리로 사용
2) Numpy배열을 이용
3) read_csv(),read_excel()

 


- 라이브러리 import

import numpy as np
import pandas as pd
from pandas import DataFrame, Series

 

 

1) 딕셔너리를 이용해서 DataFrame 만들기

list_dic={'state':['ohio','ohio','ohio','Nevada','Nevada','Nevada'],
          'year':[2000,2001,2002,2001,2002,2003],
          'pop':[1.5,1.7,3.6,2.4,2.9,3.2]
            }

list_df=DataFrame(list_dic)
print(list_df)

# 결과
'''
	state  year  pop
0    ohio  2000  1.5
1    ohio  2001  1.7
2    ohio  2002  3.6
3  Nevada  2001  2.4
4  Nevada  2002  2.9
5  Nevada  2003  3.2

'''

 

- 주(state) 컬럼만 추출

print(list_df.state)

# 결과
'''
0      ohio
1      ohio
2      ohio
3    Nevada
4    Nevada
5    Nevada
Name: state, dtype: object
'''

# 주(state) 컬럼 type
print(type(list_df.state))

# 결과
'''
<class 'pandas.core.series.Series'>
'''

 

 

2) 난수로 DataFrame 생성

# Numpy 랜덤한 수로 dataframe만들기

np.random.seed(100)
data2={'name':["James","Beth","Camila","Elsa"],
       'adderss':["NY1","NY1","NY2","NY1"],
        'age':[12,45,23,16]
      }

# np.random.randint으로 난수 생성, data2의 'name'컬럼을 인덱스로 사용      
df2=DataFrame(np.random.randint(10,100,16).reshape(4,4),index=data2['name'],columns=list('abcd'))
print(df2)

# 결과
'''
         a   b   c   d
James   18  34  77  97
Beth    89  58  20  62
Camila  63  76  24  44
Elsa    34  25  70  68
'''

 

 

3) 파일 불러들여서 DataFrame 생성

# tips 데이터 이용.
# >> tips 데이터를 현재 사용 중인 .ipynb 파일과 같은 폴더에 저장

tips = pd.read_csv("tips.csv")
tips

tips.csv

 

'Data_Analysis > Numpy, Pandas' 카테고리의 다른 글

[Pandas] DataFrame 함수 - 데이터 조회  (0) 2020.07.21
[Pandas] DataFrame 구조 확인  (0) 2020.07.21
[Pandas] Series  (0) 2020.07.13
[Numpy] 함수  (0) 2020.07.13
[Numpy] 배열 인덱싱, 슬라이싱  (0) 2020.07.12

댓글