반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 코드잇
- 코딩독학
- numpy
- 로지스틱회귀
- 파이썬
- 나혼자코딩
- for반복문
- sql연습문제
- 코드잇TIL
- 런던
- 유학생
- 영국석사
- 결정트리
- 경사하강법
- HTML
- 다항회귀
- 선형회귀
- 코딩공부
- matplotlib
- 오늘도코드잇
- 머신러닝
- Seaborn
- 코드잇 TIL
- 행렬
- 코딩
- 데이터분석
- 윈도우함수
- SQL
- 판다스
- CSS
Archives
- Today
- Total
영국 척척석사 유학생 일기장👩🏻🎓
(파이썬) Pandas DataFrame 판다스 데이터프레임 만들기 본문
728x90
반응형
지난 글에서 Pandas Series 만드는 방법과 요소에 액세스 하고 삭제, 산술 연산 하는 방법에 대해 알아보았습니다.
이번 글에서는 판다스 데이터프레임을 직접 만드는 방법에 대해 알아보겠습니다.
🔻(참고)판다스 산술연산🔻
🔻(참고)판다스 시리즈 만들기🔻
1. 수작업으로 DataFrame 만들기
1) Series의 딕셔너리로 DataFrame 만들기
- Pandas DataFrame 은 레이블이 달린 행과 열로 이루어진 2차원 데이터 구조물로써 다양한 데이터 유형을 담을 수 있습니다.
- 먼저, 딕셔너리를 사용하여 수작업으로 DataFrame을 만드는 방법에 대해 알아보겠습니다.
- 1단계) Pandas Series의 딕셔너리 만들기
- 2단계) 그 딕셔너리를 pd.DataFrame() 함수에 넣기
- 예를 들어, Alice와 Bob이 온라인 상점에서 구매한 항목들이 포함된 딕셔너리를 만들겠습니다.
- Pandas Series는 구매한 항목의 가격을 데이터로 활용하고 구매한 항목은 Pandas Series에 대한 인덱스 레이블로 활용할 것입니다.
import pandas as pd
items = {'Bob' : pd.Series(data = [245, 25, 55], index = ['bike', 'pants', 'watch']),
'Alice' : pd.Series(data = [40, 110, 500, 45], index = ['book', 'glasses', 'bike', 'pants'])}
print(type(items))
>>> <class 'dict'>
- 이렇게 딕셔너리를 만들었다면 이것을 pd.DataFrame() 함수에 넣어 DataFrame을 만들면 됩니다.
shopping_carts = pd.DataFrame(items)
shopping_carts
- 위에서 만들어진 데이터프레임을 보면 행과 열의 레이블이 굵게 나타난 표 형태입니다.
- DataFrame의 행 레이블은 딕셔너리를 만들 때 사용한 2개의 Pandas Series의 인덱스 레이블이 합쳐져서 만들어 진 것입니다.
- DataFrame의 열 레이블은 딕셔너리의 key에 있던 것입니다.
- 열이 딕셔너리에 제공된 순서가 아니라 알파벳 순서로 배열되어 있습니다.
- DataFrame이 생성될 때마다 특정한 열이 특정한 행 인덱스에 값을 갖고 있지 않으면 Pandas는 거기에 NaN 값을 넣습니다.
- 만약, 이 데이터를 머신러닝 알고리즘에 제공하려면 NaN값을 삭제해야 합니다.
2) DataFrame의 기본값 : 숫자로 된 인덱스
- 위의 예시에서는 명확하게 정의된 인덱스가 있는 Pandas Series의 딕셔너리로 Pandas DataFrame을 만들었습니다.
- 인덱스 레이블을 제공하지 않으면 Pandas는 DataFrame을 만들 때 숫자로 된 행 인덱스를 사용합니다.
data = {'Bob' : pd.Series([245, 25, 55]), 'Alice' : pd.Series([40, 110, 500, 45])}
df = pd.DataFrame(data)
df
- NumPy가 ndarray에 인덱스를 지정할 때와 마찬가지로 Pandas는 0부터 DataFrame의 행에 인덱스를 지정합니다.
3) DataFrame의 속성 출력하기
- Pandas Series에서 했던 것처럼 속성을 이용하여 정보를 추출할 수도 있습니다.
print(shopping_carts.shape)
>>> (5, 2)
print(shopping_carts.ndim)
>>> 2
print(shopping_carts.size)
>>> 10
print(shopping_carts.values)
>>> [[245. 500.]
[ nan 40.]
[ nan 110.]
[ 25. 45.]
[ 55. nan]]
print(shopping_carts.index)
>>> Index(['bike', 'book', 'glasses', 'pants', 'watch'], dtype='object')
print(shopping_carts.columns)
>>> Index(['Bob', 'Alice'], dtype='object')
4) DataFrame의 특정한 열 선택하기
- 우리는 shopping_carts DataFrame을 만들 때 딕셔너리 전체를 pd.DataFrame() 함수에 전달했습니다.
- 하지만 데이터의 일부분만 사용하려는 경우가 있을 수 있습니다.
- Pandas를 사용하면 키워드 column과 index를 사용하여 우리가 원하는 데이터를 선택하여 DataFrame에 넣을 수 있습니다.
bob_shopping_cart = pd.DataFrame(items, columns=['Bob'])
bob_shopping_cart
5) DataFrame의 특정한 행 선택하기
sel_shopping_cart = pd.DataFrame(items, index = ['pants', 'book'])
sel_shopping_cart
6) DataFrame의 특정한 행, 열 선택하기
alice_sel_shopping_cart = pd.DataFrame(items, index = ['glasses', 'bike'], columns = ['Alice'])
alice_sel_shopping_cart
7) 리스트들로 이루어진 딕셔너리로 DataFrame 만들기
- 리스트(배열)들로 이루어진 딕셔너리를 이용하여 수작업으로 DataFrame을 만들수도 있습니다.
- 방법은 앞에서와 같습니다. 먼저 딕셔너리를 만들고, 그 딕셔너리를 pd.DataFrame() 함수에 넣습니다.
- 하지만 딕셔너리에 있는 모든 리스트(배열) 은 길이가 같아야 합니다.
data = {'Integers' : [1, 2, 3], 'Floats' : [4.5, 8.2, 9.6]}
df = pd.DataFrame(data)
df
- 방금 만든 data 딕셔너리에는 레이블 인덱스가 없기 때문에 pandas는 DataFrame을 만들 때 자동으로 숫자로 된 행 인덱스를 사용합니다.
8) 리스트들로 이루어진 딕셔너리와 사용자 지정 행 인덱스(레이블)로 DataFrame 만들기
- pd.DataFrame() 함수에서 키워드 index 를 사용하여 행 인덱스에 레이블을 넣을 수 있습니다.
data = data = {'Integers' : [1,2,3], 'Floats' : [4.5, 8.2, 9.6]}
df = pd.DataFrame(data, index = ['label 1', 'label 2', 'label 3'])
df
9) 파이썬 딕셔너리 리스트로 DataFrame 만들기
items2 = [{'bikes': 20, 'pants': 30, 'watches': 35},
{'watches': 10, 'glasses': 50, 'bikes': 15, 'pants':5}]
store_items = pd.DataFrame(items2)
store_items
- item2 딕셔더리에는 레이블 인덱스가 없기 때문에 pandas는 DataFrame을 만들 떄 자동으로 숫자로 된 행 인덱스를 사용합니다.
10) 파이썬 딕셔너리 리스트와 사용자 지정 행 인덱스(레이블)로 DataFrame 만들기
- pd.DataFrame() 함수에서 키워드 index를 사용하여 행 인덱스에 레이블을 넣을 수 있습니다.
items2 = [{'bikes': 20, 'pants': 30, 'watches': 35},
{'watches': 10, 'glasses': 50, 'bikes': 15, 'pants':5}]
store_items = pd.DataFrame(items2, index = ['store1', 'store2'])
store_items
728x90
반응형
'코딩공부 > Python' 카테고리의 다른 글
(파이썬) 판다스 데이터프레임에서 NaN값을 다루는 여러 가지 방법 (1) | 2024.06.19 |
---|---|
(파이썬) 판다스 데이터프레임(pandas dataframe) 행, 열 추가 및 제거 (0) | 2024.06.19 |
(파이썬) 판다스 시리즈(Pandas Series)에 대한 산술 연산 (0) | 2024.06.18 |
(파이썬) 판다스(Pandas) 시리즈 만들기, .loc/.iloc 이용해서 요소들에 액세스하고 삭제하기 (1) | 2024.06.18 |
(파이썬) 서브 패키지 (0) | 2024.06.18 |