728x90
pandas란 엑셀처럼 테이블(표)로 된 데이터를 다룰 때 아주 유용한 도구이다.
판다스는 데이터 분석용 언어인 R의 data.frame 구조를 본뜬 DataFrame이라는 구조를 사용하기 때문에, R의 data.frame의 기능들을 대부분 사용할 수 있도록 만들어졌다.
index 를 제외한 각 열(Column)을 Series라고 부른다.
각 열 단위(Series)가 모여 하나의 표를 DataFrame 이라고 부른다.
아래 코드는 jupyter notebook 환경에서 실습하면 된다.
https://link2me.tistory.com/2094 게시글에 라이브러리 설치와 Jupyter notebook 설치하는 방법이 기술되어 있다.
index 를 내가 원하는 형식으로 변경할 수 있다.
import pandas as pd
# Series 는 인덱스와 값으로 구성된다.
array = pd.Series(['사과', '바나나', '당근'], index=['a','b','c'])
print(array)
print()
# index 출력하기
for i in array.index:
print(i)
print()
# value 출력하기
for val in array.values:
print(val)
|
import pandas as pd
data = {
'a': '사과',
'b': '바나나',
'c': '당근'
}
# Dict 자료형을 Series로 바꾸기
array = pd.Series(data)
print(array)
|
import pandas as pd
# 데이터 프레임 : 다수의 시리즈(Series)를 모아 처리하기 위한 목적으로 사용
# Dict 자료형
word_dict = {
'Apple': '사과',
'Banana': '바나나',
'Carrot': '당근'
}
frequency_dict = {
'Apple': 3,
'Banana': 5,
'Carrot': 7
}
word = pd.Series(word_dict)
frequency = pd.Series(frequency_dict)
# name : value
summary = pd.DataFrame({
'word': word,
'frequency': frequency
})
display(summary)
|
import pandas as pd
# Series 끼리 사칙연산이 가능하다. 사칙연산을 한 결과는 또 다른 Series이다.
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
display(summary)
|
DataFrame 의 칼럼(열) 순서를 바꿔보고 싶다면....
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
})
display(summary)
# DataFrame 의 칼럼(열) 순서를 바꿔보기
df = pd.DataFrame(summary, columns=['word', 'importance', 'frequency'])
display(df)
# 이름을 기준으로 슬라이싱
display(summary.loc['Banana':'Carrot', 'importance':])
# 인덱스를 기준으로 슬라이싱
display(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
})
display(summary)
summary.loc['Apple', 'importance'] = 9 # 데이터의 변경
summary.loc['Elderberry'] = ['엘더베리', 5, 3] # 새 데이터 삽입
display(summary)
print()
# 끝에서 마지막 2줄을 불러온다. tail() 로 하면 마지막 5개를 불러온다.
display(summary.tail(2))
print()
# 맨 처음부터 2줄을 불러온다.
display(summary.head(2))
# 데이터의 대략적인 통계적 정보 요약을 보여준다.
display(summary.describe())
|
# 엑셀로 내보내기/불러오기
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")
# csv 파일 형태로 저장한 데이터는 텍스트 파일 형태
# csv 파일 엑셀 읽어오기 및 화면 출력
saved = pd.read_csv("summary.csv", index_col=0)
display(saved)
|
728x90
'파이썬 > 데이터 분석' 카테고리의 다른 글
MariaDB to Python Pandas DataFrame (0) | 2022.01.21 |
---|---|
Python Pandas CSV 읽고 DB 저장 (0) | 2022.01.19 |
Pycharm과 Jupyter Notebook 연결하기 (0) | 2022.01.12 |