파이썬/파이썬 pandas

[pandas] 시리즈 다루기

Merware 2023. 5. 11. 17:22

시리즈 만들기

  • pd.Series(리스트)
  • 시리즈 : 엑셀시트의 열 1개를 의미한다.(1차원 리스트형태)
# 시리즈 만들기
s = pd.Series(['amy',170,240])
s.index
s

"""
0    amy
1    170
2    240
dtype: object
# 타입 확인하기
type(s)

"""
pandas.core.series.Series

 

시리즈의 index와 value 가져오기

  • 시리즈에는 index와 value가 있다.
  • 시리즈의 index 가져오기 : 시리즈.index
  • 시리즈의 value 가져오기 : 시리즈.values
  • 시리즈의 인덱스는 리스트의 인덱스와 다른 개념이다.
    시리즌의 인덱스는 데이터의 이름이고, 행번호는 따로 있다.
# 시리즈 인덱스 가져오기
s.index

"""
RangeIndex(start=0, stop=3, step=1)
# 시리즈 데이터 가져오기
s.values

"""
array(['amy', 170, 240], dtype=object)

 

시리즈의 index 지정하기

  • 시리즈.index = 인덱스리스트
  • 시리즈의 인덱는 숫자, 문자열 모두 가능하다.
# 시리즈 인덱스 지정하기
s.index = ['name','height','footsize']

# 시리즈 출력하기
s

"""
name        amy
height      170
footsize    240
dtype: object
"""

# 인덱스 확인하기
s.index
"""
Index(['name', 'height', 'footsize'], dtype='object')
"""

# 데이터 확인하기
s.values
"""
array(['amy', 170, 240], dtype=object)

 

시리즈의 통계값 사용하기

  • 평균 : 시리즈.mean()
  • 최소값 : 시리즈.min()
  • 최대값 : 시리즈.max()
  • 중간값 : 시리즈.median()
  • 표준편차 : 시리즈.std()
  • 시리즈의 통계값은 시리즈의 value가 모두 숫자형일 때 사용할 수 있다.
s2 = pd.Series([10,20,30,40,50])
print('평균:',s2.mean())
print('최소값:',s2.min())
print('최대값:',s2.max())
print('중간값:',s2.median())
print('표준편차:',s2.std())

"""
평균: 30.0
최소값: 10
최대값: 50
중간값: 30.0
표준편차: 15.811388300841896
  • 요약통계 : 시리즈.describe()
s2.describe()

"""
count     5.000000
mean     30.000000
std      15.811388
min      10.000000
25%      20.000000
50%      30.000000
75%      40.000000
max      50.000000
dtype: float64

 

시리즈 주요 메서드

  • 값 정렬 : 시리즈.sort_values( )
  • 인덱스 정렬 : 시리즈.sort_index( )
  • 인덱스 리셋 : 시리즈.reset_index( ) --> 행번호로 인덱스 재지정
  • 특정 값을 가진 시리즈 값을 교체 : replace(찾을값, 교체할값)
  • 시리즈를 데이터프레임으로 변환 : 시리즈.to_frame( )
s3 = pd.Series([1,3,2,4,10])

# s3의 value 중 10을 5로 교체
s3 = s3.replace(10,5)
s3
"""
0    1
1    3
2    2
3    4
4    5
dtype: int64
"""

# s3 정렬 (디폴트는 오름차순 : ascending=True)
s3.sort_values()
"""
0    1
2    2
1    3
3    4
4    5
dtype: int64
"""

s3.sort_values(ascending=False)
"""
4    5
3    4
1    3
2    2
0    1
dtype: int64
"""

# s3을 데이터프레임으로 만들기
s3.to_frame()
"""
	0
0	1
1	3
2	2
3	4
4	5
"""

# 시리즈 인덱스 새로 만들기
s.reset_index()
"""
	index	0
0	name	amy
1	height	170
2	footsize	240