파이썬(Python) Pandas의 기본 사용법
판다스(Pandas)는 파이썬(Python) 라이브러리 중 하나로서 데이터를 효과적으로 처리하고 보여줄 수 있도록 도와줍니다. 또한 Numpy와 함께 사용되어 다양한 연계 기능을 제공합니다. 판다스의 기본 자료형 중 하나로는 시리즈(Series)가 있습니다. 이는 Numpy 배열과 흡사하지만 인덱스(Index)를 제공한다는 점에서 사전(Dictionary) 자료형에 가깝습니다. 이를 이용해 인덱스로 특정한 데이터에 바로 접근할 수 있습니다.
import pandas as pd array = pd.Series(['사과', '바나나', '당근'], index=['a', 'b', 'c']) print(array['a'])
사전과 흡사하게 동작한다는 점에서 파이썬(Python)의 사전(Dictionary)를 판다스 객체로 만들 수 있습니다.
import pandas as pd
dict = {
'a': '사과',
'b': '바나나',
'c': '당근'
}
array = pd.Series(dict)
print(array['a'])
※ 데이터 프레임(Data Frame) ※
데이터 프레임은 Pandas에서 다수의 Series 데이터를 모아 처리하는 목적으로 사용할 수 있습니다. 일반적으로 표 형태로 특정한 데이터를 출력하고자 할 때 간단히 사용할 수 있습니다.
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
})
print(summary)
또한 Pandas도 Numpy와 마찬가지로 연산이 가능합니다.
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)
이러한 판다스 객체는 인덱스를 기준으로 처리하고, 슬라이싱 하는 등의 작업을 수행할 수 있습니다. 슬라이싱을 할 때는 iloc 혹은 loc를 사용할 수 있습니다. iloc는 인덱스를 기준으로 슬라이싱을 처리하도록 도와줍니다.
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
})
summary.loc['Apple', 'importance'] = 5 # 데이터의 변경
summary.loc['Elderberry'] = ['엘더베리', 5, 3] # 새 데이터 삽입
print(summary)
※ Pandas를 이용해 엑셀(Excel)로 내보내기/불러오기 ※
판다스의 내장 함수를 이용하면 엑셀 파일 형태로 내보내거나 불러올 수도 있습니다.
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)
'인공지능' 카테고리의 다른 글
파이썬(Python) Pandas의 활용 (0) | 2018.12.08 |
---|---|
파이썬(Python) Pandas의 연산과 함수 (0) | 2018.12.08 |
파이썬(Python) Numpy의 연산과 함수 (0) | 2018.12.08 |
파이썬(Python) Numpy의 기본 사용법 (0) | 2018.12.08 |
CNN을 통해 배우는 이미지 인식 인공지능 기술 1. 인공지능 기술 및 CNN의 개요 (0) | 2018.07.26 |