Pandas

  • 데이터를 효과적으로 처리하고 보여줄 수 있도록 도와주는 라이브러리
  • Numpy와 함께 사용되어 다양한 연계적인 기능을 제공
  • 인덱스에 따라 데이터를 나열하므로 사전 자료형에 가까움
  • 시리즈를 기본적인 자료형으로 사용
  • 엑셀과 유사

- 시리즈 (Series)

: 인덱스와 값으로 구성

{
     name : '철수',
     age : '20'
}

0 : 철수, 20
1 : 홍길동, 40
import pandas as pd

array=pd.Series(['사과', '바나나', '당근'], index=['a', 'b', 'c'])
print(array)
# a  사과
# b  바나나
# c  당근

print(array['a']) #사과
import pandas as pd

data = {
    'a': '사과',
    'b': '바나나',
    'c': '당근'
}

# Dict 자료형을 Series로 바꾸기
array = pd.Series(data)
print(array['a']) #사과

 

- 데이터 프레임

  • 다수의 시리즈를 모아 처리하기 위한 목적으로 사용
  • 표 형태로 데이터를 손쉽게 출력하고자 할 때 사용
import pandas as pd

word_dict = {
    'Apple': '사과',
    'Banana': '바나나',
    'Carrot': '당근'
}

frequency_dict = {
    'Apple': 3,
    'Banana': 5,
    'Carrot': 7
}

word = pd.Series(word_dict)
frequency = pd.Series(frequency_dict)

# 이름(Name): 값(Values)
summary = pd.DataFrame({
    'word': word,
    'frequency': frequency
})

print(summary)

 

- 시리즈의 연산

import pandas as pd

word_dict = {
    'Apple': '사과',
    'Banana': '바나나',
    'Carrot': '당근'
}

frequency_dict = {
    'Apple': 3,
    'Banana': 5,
    'Carrot': 7
}

importance_dict = {
    'Apple': 3,
    'Banana': 2,
    'Carrot': 1
}

word = pd.Series(word_dict)
frequency = pd.Series(frequency_dict)
importance = pd.Series(importance_dict)

summary = pd.DataFrame({
    'word': word,
    'frequency': frequency,
    'importance': importance
})

score = summary['frequency'] * summary['importance']
summary['score'] = score

print(summary)

- 데이터 프레임 슬라이싱

import pandas as pd

word_dict = {
    'Apple': '사과',
    'Banana': '바나나',
    'Carrot': '당근',
    'Durian': '두리안'
}

frequency_dict = {
    'Apple': 3,
    'Banana': 5,
    'Carrot': 7,
    'Durian': 2
}

importance_dict = {
    'Apple': 3,
    'Banana': 2,
    'Carrot': 1,
    'Durian': 1
}

word = pd.Series(word_dict)
frequency = pd.Series(frequency_dict)
importance = pd.Series(importance_dict)

summary = pd.DataFrame({
    'word': word,
    'frequency': frequency,
    'importance': importance
})

print(summary)

# 이름을 기준으로 슬라이싱
print(summary.loc['Banana':'Carrot', 'importance':])

# 인덱스를 기준으로 슬라이싱
print(summary.iloc[1:3, 2:])

 

- 데이터 프레임 연산

import pandas as pd

word_dict = {
    'Apple': '사과',
    'Banana': '바나나',
    'Carrot': '당근',
    'Durian': '두리안'
}

frequency_dict = {
    'Apple': 3,
    'Banana': 5,
    'Carrot': 7,
    'Durian': 2
}

importance_dict = {
    'Apple': 3,
    'Banana': 2,
    'Carrot': 1,
    'Durian': 1
}

word = pd.Series(word_dict)
frequency = pd.Series(frequency_dict)
importance = pd.Series(importance_dict)

summary = pd.DataFrame({
    'word': word,
    'frequency': frequency,
    'importance': importance
})

print(summary)

summary.loc['Apple', 'importance'] = 5 # 데이터의 변경
summary.loc['Elderberry'] = ['엘더베리', 5, 3] # 새 데이터 삽입

print(summary)

- 엑셀로 내보내기/불러오기

import pandas as pd

word_dict = {
    'Apple': '사과',
    'Banana': '바나나',
    'Carrot': '당근'
}

frequency_dict = {
    'Apple': 3,
    'Banana': 5,
    'Carrot': 7
}

word = pd.Series(word_dict)
frequency = pd.Series(frequency_dict)

summary = pd.DataFrame({
    'word': word,
    'frequency': frequency
})

summary.to_csv("summary.csv", encoding="utf-8-sig")
saved = pd.read_csv("summary.csv", index_col=0)
print(saved)

 

https://youtu.be/9PF4BAFh-J8

위 영상을 참고하여 작성

+ Recent posts