Series
- 리스트와 유사하며 index 설정에 따라 딕셔너리처럼 사용할 수도 있는 자료구조
- 공식 문서 : https://pandas.pydata.org/docs/reference/api/pandas.Series.html
pandas.Series — pandas 1.4.3 documentation
Values must be hashable and have the same length as data. Non-unique index values are allowed. Will default to RangeIndex (0, 1, 2, …, n) if not provided. If data is dict-like and index is None, then the keys in the data are used as the index. If the ind
pandas.pydata.org
iterator를 Series로 변환
- 1.1 : 리스트(튜플도 가능)를 시리즈로 변환 (index=를 생략하면 자동으로 0부터 n까지로 지정됨)
- 1.2 : 딕셔너리를 시리즈로 변환
1 2 3 4 5 6 7 8 | # 1.1 lotto1 = pd.Series([5, 11, 14, 30, 33, 38, 24], index=[1,2,3,4,5,6,'bonus']) lotto1 # 1.2 ls = {1:5, 2:11, 3:14, 4:30, 5:33, 6:38, 'bonus':24} lotto2 = pd.Series(ls) lotto2 | cs |
Q1. 아래와 같은 딕셔너리가 주어졌을 때, 시리즈를 생성하고 최대값과 최소값을 구하여 결과와 똑같이 출력.
1 2 3 4 5 6 7 | jumsu = { '글린다' : [50,60,50], '엘파바' : [60,60,60], '피예로' : [100,90,90], '네사로즈' : [80,80,90], '보크' : [95,95,95], } | cs |
A.
1 2 3 4 5 6 7 8 9 | s_jumsu = pd.Series(jumsu) # import pandas as pd for i in s_jumsu.index: print('-' + i + '-', end='-') print() for i in s_jumsu.values: print( '-{:.2f}점-'.format( np.max(i)), end='') # import numpy as np print() for i in s_jumsu.values: print( '-{:.2f}점-'.format( np.min(i)), end='') | cs |
Q2. 아래와 같은 딕셔너리가 주어졌을 때, 시리즈를 생성하고 학생별 평균값을 구하여 결과와 똑같이 출력.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | jumsu = { '엘파바' : [50,60,50], '글린다' : [60,60,60], '피예로' : [100,90,90], '네사로' : [80,80,90], '보오크' : [50,45,50], '비이크' : [80,70,66], '마법사' : [64,49,50], '모리블' : [60,50,50], '딜라몬' : [50,45,51], '갈린다' : [80,70,61], '웨스턴' : [64,49,51], '위치이' : [60,50,51], '위키드' : [95,95,95] } | cs |
A.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # 2.1 s1_jumsu = pd.Series(jumsu) s2_jumsu = pd.Series() for index in s1_jumsu.index: avg = np.mean(s1_jumsu.get(index)) # np.mean은 numpy에서 제공하는 평균값 함수 if avg < 60: s2_jumsu[index] = round(avg, 2) for i in s2_jumsu.index: print(i, end='-') print() for i in s2_jumsu.values: print( '{}-'.format(i), end='-') | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # 2.2 jumsu2 = dict({key : round(np.mean(value), 2) for key, value in jumsu.items() if np.mean(value)<60}) ''' 딕셔너리 내부 코드는 아래 코드와 같음 for key, value in jumsu.items() if np.mean(value) < 60 : jumsu2[key] = round(np.mean(value), 2) ''' jumsu3 = pd.Series(jumsu2) for i in jumsu3.index: print(i, end="-") print() for i in jumsu3: print(i, end="--") print() | cs |
'study > python' 카테고리의 다른 글
파이썬 객체 지향 개념 정리 - 클래스, 생성자 (1) | 2023.11.12 |
---|---|
파이썬 pandas - 데이터프레임(DataFrame) 생성 및 데이터 출력 (0) | 2022.07.28 |
파이썬 pandas, jupiter - 환경 설치, 설정 (0) | 2022.07.27 |
파이썬 데이터베이스 - csv, json 파일 형식 다루기 (0) | 2022.06.17 |
파이썬 데이터베이스 - MySQL 연동하는 법과 SQL문 활용 (0) | 2022.06.13 |
댓글