| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- python
- 점프투파이썬
- C++
- 프로그래머스lv2
- 동적바인딩
- 제네릭프로그래밍
- 백준
- STL
- 람다식
- 11382번
- 유도클래스
- 멤버함수로구현
- 기본클래스
- 주피터
- 스택
- 코딩테스트
- 다형성
- 참조자
- c++코딩테스트합격자되기
- 얕은복사
- 포인터
- 깊은복사
- OpenCV
- 인프런
- 데이터사이언스
- 상속
- 연산자오버로딩
- 코드잇
- OOP
- list comprehension
- Today
- Total
WjExplor Story
Pandas 와 DataFrame 본문
NumPy는 복잡한 수학 연산을 할 때 사용되나 표 형태 데이터에서는 불리한 측면이 있다.
Numpy 안에 Pandas 라이브러리를 이용하여 사용하게 되면 편리한 기능을 사용할 수 있다.
Pandas는 표 형태의 데이터를 간편하게 다루고 싶을 때 사용한다.
import pandas as pd
df = pd.DataFrame({
'category': ['skirt', 'sweater', 'coat', 'jeans'],
'quantity': [10, 15, 6, 11],
'price': [30000, 60000, 95000, 35000]
})
df
pd.DataFrame() 함수에 python dictionary를 파라미터로 넘겨줬다.
dictionay에 첫 번째로는 'category'라고 써주고, category 목록을 List로 넘겨주었다.
그다음으로는 'quantity'(수량)을 써주고 수량도 List로 넘겨주고
마지막으로 'price' 가격 목록을 써주고 가격 목록을 List 로 넘겨주었다.

DataFrame 구조에 대해 짧게 살펴보자.
DataFrame 에서 가로 줄을 로우(row)라고 한다. 한국어로는 '행'이라고 한다.
세로 줄은 컬럼(column) 이라고 한다. 한국어로는 '열'이라고 한다.
지금 현재 DataFrame 은 4개의 로우와 3개의 칼럼이 있다.
category , quantity , price 는 각 칼럼의 이름이다.
DataFrame을 사용하면 칼럼에 이름을 붙여 줄 수 있다.
Numpy에서는 지원하지 않는 기능이다.
왼쪽에 0 , 1 , 2 , 3 숫자는 인덱스라고 부르고 각 로우의 이름이다.
Numpy 개념들이 Pandas에서도 대부분 적용 가능하다.
Pandas는 Numpy를 기반으로 만들어진 라이브러리이기 때문이다.
df['quantity']

quantity 컬럼에 있는 데이터만 가져올 수 있다.
좌측에 있는 0 , 1 , 2 , 3 은 인덱스
우측에 있는 10 , 15 , 60 , 11 은 데이터 값이다.
칼럼의 이름(name)과 데이터 타입(dtype) 도 확인할 수 있다.
quantity의 칼럼의 데이터 타입을 확인해 보면

pandas.core.series.Series
이렇게 데이터 타입이 확인된다.
칼럼 하나를 데이터 타입으로 받아오면 더 이상 pandas DataFrame 이 아니라 pandas Series 가 된다.
DataFrame 이 데이터를 표 형태, 즉 2차원으로 다루는 거라면 Series는 데이터를 1차원으로 다루는 것이다.
DataFrame 은 2차원 Numpy array에 보너스 기능이 추가된 거라고 보면 되고
Series는 1차원 Numpy array에 보너스 기능이 추가된 거로 보면 된다.
DataFrame는 여러 개의 Series로 구성되어 있다고 볼 수 있다.
df ['quantity']을 계산해 보자
df['quantity'].mean() # 평균
df['quantity'].sum() # 합계
df['quantity'].min() # 최솟값

df['quantity'] * df['price']
Series * Series 두 시리즈를 곱하게 되면 어떻게 될까?
Numpy 랑 비슷한 개념이다. 0번 인덱스끼리 값을 곱하고 , 1번 인덱스끼리 값을 곱한다.
각 인덱스의 값끼리 곱해서 새로운 Series 가 만들어진다.
df ['quantity'] * df ['price'] 은 항목별로 총판매량을 계산한 것이다. Numpy와 비슷한 방식이다.
DataFrame 을 만드는 다양한 방법
2차원 Numpy array를 가지고 DataFrame 을 만들어보자.
import pandas as pd
import numpy as np
dict_df = pd.DataFrame({
'category': ['skirt', 'sweater', 'coat', 'jeans'],
'quantity': [10, 15, 6, 11],
'price': [30000, 60000, 95000, 35000]
})
two_dimensional_list = [
['skirt', 10, 30000],
['sweater', 15, 60000],
['coat', 6, 95000],
['jeans', 11, 35000]
]
two_dimensional_array = np.array(two_dimensional_list)
list_df = pd.DataFrame(two_dimensional_list)
array_df = pd.DataFrame(two_dimensional_array)
two_defemsional_list 라는 2차원 리스트 (list of lists) 를 가지고 list_df 를 만들었다.
two_dimensional_array 라는 2차원 Numpy array 를 가지고 array_df 를 만들었다.

list_df 와 array_df 를 출력해보면 결과가 위에처럼 만들어지는데 컬럼의 이름을 따로 설정하지 않아서 0부터 시작하는 숫자값이 들어가있다.
DataFrame 을 만들 때 columns 라는 옵션을 사용해서 컬럼명을 설정하는 것도 가능하다.

마지막으로 Dictonary 가 담겨 있는 List 로 DataFrame 을 만들 수 있다.
dict_list = [
{'category': 'skirt', 'quantity': 10, 'price': 30000},
{'category': 'sweater', 'quantity': 15, 'price': 60000},
{'category': 'coat', 'quantity': 6, 'price': 95000},
{'category': 'jeans', 'quantity': 11, 'price': 35000}
]
dict_list_df = pd.DataFrame(dict_list)
dict_list_df

'Python > Python : Jupyter' 카테고리의 다른 글
| DataFrame 과 불린 인덱싱 (0) | 2025.09.24 |
|---|---|
| DataFrame 데이터 불러오기 & 데이터 일부만 선택하기 (0) | 2025.09.24 |
| 그래프에 한글로 된 텍스트 넣기 (0) | 2025.09.24 |
| 연봉 데이터 시각화_Jupyter (0) | 2025.09.23 |
| 그래프 사이즈 조절하기 (0) | 2025.09.23 |