반응형

04. 판다스 시리즈(Pandas Series) 연산 (min(), max(), mean(), diff(), rank())

1) 기본 코드

import pandas as pd

data1 = [1, 2, 3, 4, 5]
index1 = ['row1', 'row2', 'row3', 'row4', 'row5']

s1 = pd.Series(data=data1, index=index1)

data2 = [6, 7, 8, 9, 10]
index2 = ['row3', 'row4', 'row5', 'row1', 'row2']

s2 = pd.Series(data=data2, index=index2)

sum = s1 + s2

print(sum)
print('max : ' + str(sum.max()))
print('min : ' + str(sum.min()))
print('mean : ' + str(sum.mean()))
print(str(sum.diff(periods=2))
print(sum.rank(ascending=False)) #내림차순
print(sum.rank(ascending=True)) #오름차순

 

반응형

 

 

2) 실행 결과

sum = s1 + s2
print(sum)
row1    10
row2    12
row3     9
row4    11
row5    13
dtype: int64
  • sum = s1 + s2
    • 두개의 Series를 합산
    • 각 Series의 인덱스가 같은 것과 값을 합산
    • 각각의 인덱스 순서가 달라도 합산 가능
print('max : ' + str(sum.max()))
print('min : ' + str(sum.min()))
print('mean : ' + str(sum.mean()))
max : 13
min : 9
mean : 11.0
  • sum이란 Series에서 최대값, 최솟값, 평균값을 출력
print('Diff')
print(sum.diff(periods=2))
Diff
row1    NaN
row2    NaN
row3   -1.0
row4   -1.0
row5    4.0
dtype: float64
  • 값의 차이를 출력
  • periods=2
    • ex) ‘row1’과 ‘row3’의 값 차이를 ‘row3’에 출력
    • ‘row1’, ‘row2’는 비교할 값이 없으므로 NaN으로 출력
print(sum.rank(ascending=False)) #내림차순

print(sum.rank(ascending=True)) #오름차순
row1    4.0
row2    2.0
row3    5.0
row4    3.0
row5    1.0
dtype: float64

row1    2.0
row2    4.0
row3    1.0
row4    3.0
row5    5.0
dtype: float64
  • 내림차순
    • sum.rank(ascending=False)
  • 오름차순
    • sum.rank(ascending=True)
반응형
반응형

03. 판다스 시리즈(Pandas Series) Values 수정, 삭제

1) 기본 코드

import pandas as pd

data = [1,2,3,4,5]
index = ['row1', 'row2', 'row3', 'row4', 'row5']

s = pd.Series(data=data, index=index)


#값 수정 방법
s.iloc[0] = 10
s.loc['row2'] = 20
s[2] = 30
s['row4'] = 40

print(s)
print(s.drop('row5'))
print(s)

 

반응형

 

2) 실행 결과

s.iloc[0] = 10
s.loc['row2'] = 20
s[2] = 30
s['row4'] = 40
print(s)
row1    10
row2    20
row3    30
row4    40
row5     5
dtype: int64
  • 각 인덱스에 접근하여 일반 변수와 같이 값을 할당
  • 한번에 여러 값 변경도 가능
    • ex) s.iloc[0:5] = 10
      1행 부터 5행 까지 값이 모두 10으로 수정
print(s.drop('row5'))
row1    10
row2    20
row3    30
row4    40
dtype: int64
  • 해당 값을 제외하고 값을 출력
  • 인덱스의 명칭(위의 ‘row5’)을 넣어야 함
  • s라는 Series에서 ‘row5’를 빼고 출력하는 것일 뿐 삭제하는 것은 아님
print(s)
row1    10
row2    20
row3    30
row4    40
row5     5
dtype: int64
  • s.drop(’row5’)실행 후 다시 print(s)를 실행해도 row5가 남아있는 것을 볼 수 있음
  • drop은 삭제가 아니라 제외하고 출력
반응형
반응형

02. 판다스 시리즈(Pandas Series) 인덱싱 / 슬라이싱

1) 기본코드

import pandas as pd

data = [1,2,3,4,5]
index = ['row1', 'row2', 'row3', 'row4', 'row5']

s = pd.Series(data=data, index=index)

#출력1
print(s.iloc[0])
print(s.loc['row1'])

#출력2
print(s.iloc[0:3])
print(s.loc['row1':'row3'])

#출력3
print(s.iloc[[0,2]])
print(s.loc[['row1', 'row3']])
  • iloc / loc 차이
  • iloc[int]
    • 숫자로 인덱싱
      • 0,1,2....와 -1,-2... 음수도 가능
    • loc[String]
      • 문자열로 인덱싱
      • 인덱스의 값을 기준으로 인덱싱
print(s.iloc[0])
print(s.loc['row1'])
1
1
  • print(s.iloc[0])
    • 첫번재 행의 값 출력
  • print(s.loc[’row1’])
    • 인덱스값 ‘row1’의 값 출력
print(s.iloc[0:3])
print()
print(s.loc['row1':'row3'])
row1    1
row2    2
row3    3
dtype: int64

row1    1
row2    2
row3    3
dtype: int64
  • print(s.iloc[0:3])
    • 0:3번째 데이터 출력
  • print(s.loc['row1':'row3'])
    • 인덱스 문자열 ‘row1’부터 ‘row3’까지의 값 출력
반응형
print(s.iloc[[0,2]])
print()
print(s.loc[['row1', 'row3']])
row1    1
row3    3
dtype: int64

row1    1
row3    3
dtype: int64
  • print(s.iloc[[0,2]])
    • 0, 2번째 데이터 출력
  • print(s.loc[['row1', 'row3']])
    • 인덱스 문자열 ‘row1’, ‘row3’의 값 출력
반응형
반응형

1. 시리즈(Series) 기본 사용법

1) 기본 코드

import pandas as pd

data = [1,2,3]
index = ['row1', 'row2', 'row3']

s = pd.Series(data=data, index=index)

print(s)

print(s * 10)

print(s.index)

print(s.values)

2) 실행결과

print(s)
row1    1
row2    2
row3    3
dtype: int64
  • 첫열은 인덱스 값(미 설정시 0,1,2....로 자동 지정)
  • 두번재 열은 값
  • dtype : 두번째 열의 데이터 타입
  • Series는 일차원 배열이므로 열 추가가 불가
print(s * 10)
print('\n')
print([1,2,3] * 5)
row1    10
row2    20
row3    30
dtype: int64


[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
  • padas Series는 각 행의 값에 10을 곱한 값을 출력
  • 2번째 파이썬 리스트의 경우 [1,2,3]을 10번 반복해서 출력
print(s.index)
Index(['row1', 'row2', 'row3'], dtype='object')
  • 인덱스 값만 출력
print(s.values)
[1 2 3]
  • 값만 출력
반응형
반응형

1. 판다스(Pandas)

  1. 데이터 분석에 많이 사용되는 파이썬 라이브러리
  2. 기존 파이썬의 리스트 배열이 아닌 판다스 자체적인 자료 구조를 사용
  3. 판다스 시리즈(pandas Series)를 통한 일차원 데이터 관리에 유용
  4. 판다스 데이터프레임(pandas DataFrame)을 통한 이차원 데이터 관리에 유용
  5. 공식 페이지
    https://pandas.pydata.org/
 

pandas - Python Data Analysis Library

pandas pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool, built on top of the Python programming language. Install pandas now!

pandas.pydata.org

 

반응형

+ Recent posts