반응형
1. 데이터 생성
1) 시리즈 데이터 생성하기
- pandas에서 시리즈(series)는 1차원 배열 형태의 데이터 구조로, 하나의 데이터 타입만을 가질 수 있습니다. 시리즈는 pd.Series()를 이용해 생성할 수 있습니다.
- 예를 들어, 아래와 같이 사람 이름과 숫자를 함께 넣을 수 있습니다.
pd.Series(["태조", 6])
- 위 코드는 인덱스가 자동으로 0, 1로 생성됩니다. 그러나 인덱스를 직접 지정하고 싶다면 index 매개변수를 사용해 문자열로 생성할 수 있습니다. 이와 같이 지정하면, 각각의 값에 대해 직접 이름을 붙일 수 있어 데이터 해석이 쉬워집니다.
pd.Series(["태조", 6], index = ["묘호", "재위기간"])
2) 데이터프레임 데이터 생성하기
- 여러 개의 시리즈가 모이면 데이터프레임(DataFrame)이 됩니다. 이와 같은 구조는 테이블 형태로 깔끔하게 데이터를 정리할 수 있어 매우 유용하며, 가장 많이 사용되는 형태입니다.
- 아래는 조선시대 초반부터 5대 왕까지의 정보를 담은 데이터프레임 예시입니다.
pd.DataFrame(
data = {"묘호" : ["태조", "정종", "태종", "세종", "문종"],
"출생연도" : ["1335년", "1357년", "1367년", "1397년", "1414년"],
"사망연도" : ["1408년", "1419년", "1422년", "1450년", "1452년"],
"재위기간" : ["6년", "2년", "18년", "32년", "2년"],
"즉위나이" : [58, 42, 34, 22, 37]},
index = ["제1대", "제2대", "제3대", "제4대", "제5대"],
columns = ["묘호", "출생연도", "사망연도", "즉위나이", "재위기간"]
)
2. 시리즈 데이터 필터링
- 이제 위에서 만든 데이터프레임을 Joseon_King이라는 변수로 저장했다고 가정하고, 시리즈 관련 작업을 진행해보겠습니다.
1) 시리즈 불러오기
- 데이터프레임에서 특정 열을 선택하면 해당 열은 시리즈 형태로 변환됩니다. 예를 들어 '즉위나이'만을 따로 불러올 수 있습니다.
ages = Joseon_King["즉위나이"]
ages
2) 시리즈 기초 통계
- 시리즈에 포함된 숫자 데이터를 바탕으로 평균(mean), 최댓값(max), 최솟값(min), 표준편차(std) 등을 구할 수 있습니다.
# 평균값
ages.mean()
# 최댓값
ages.max()
# 최솟값
ages.min()
# 표준편차
ages.std()
3) 시리즈 조건에 따른 필터링
- 평균보다 어린 나이에 즉위한 왕들은 누구일까요? 다음과 같은 조건을 이용해 필터링할 수 있습니다. 비교 연산자를 활용하여 조건에 맞는 데이터만 추출할 수 있습니다.
ages[ages < ages.mean()]
3. 시리즈 연산
1) 시리즈끼리 연산
- 시리즈 간의 연산은 동일한 인덱스를 기준으로 진행됩니다. 숫자형 데이터라면 덧셈, 곱셉 등의 연산이 가능하며 결과는 각 항목별로 처리됩니다.
제1대 : 58 / 제2대 : 42 / 제3대 : 34 / 제4대 : 22 / 제5대 : 37
ages + ages
2) 시리즈와 숫자 간 연산
- 시리즈와 정수 또는 실수 간의 연산도 가능합니다. 각 요소에 대해 일괄적으로 숫자가 더해지거나 곱해지는 방식입니다.
# 덧셈
ages + 10
# 곱셉
ages * 2
3) 길이가 다른 시리즈 간 연산
- 길이가 다른 시리즈 연산도 가능한데, 인덱스가 일치하는 항목만 연산이 수행되며, 나머지는 NaN으로 출력됩니다.
ages + pd.Series([10, 5], index = ["제1대", "제2대"])
4. 정렬하기 : 내림차순, 올림차순
1) 내림차순
- 인덱스를 기준으로 정렬하고 싶다면 sort_index() 메서드를 사용합니다. 내림차순은 ascending = False로 설정합니다.
ages.sort_index(ascending = False)
2) 올림차순
- 내림차순이 False였다면, 올림차순은 True겠죠?
- 내림차순과 마찬가지로 sort_index() 메서드로 정렬 후, ascending = True를 입력하여 올림차순을 진행합니다.
- 정렬은 분석 전에 데이터를 확인하고 정리하는 데 유용하게 활용됩니다.
ages.sort_index(ascending = True)
이상으로 pandas의 시리즈 생성부터 연산, 필터링, 정렬까지의 기초적인 사용법을 정리해 보았습니다. 데이터를 다루는 데 있어 시리즈를 자유롭게 다룰 수 있다면, 이후의 분석도 훨씬 수월해질 것입니다.
감사합니다.
'데이터 분석 관련' 카테고리의 다른 글
pandas(6) : 날짜 데이터 변환 및 변환 오류 / 주피터노트북 (0) | 2025.02.19 |
---|---|
pandas (5) : 데이터프레임 생성, 데이터프레임 필터링 / 주피터 노트북 (0) | 2025.02.13 |
프로그래머스 문제 풀이 - 두 수의 합 구하기 (0) | 2025.02.11 |
pandas (3) : 기초 통계 함수 총정리 - describe, groupby, nunique, value_counts, count (0) | 2025.02.10 |
pandas (2) : 데이터 추출 방법 정리 / 주피터 노트북 (0) | 2025.02.10 |