카테고리 없음

[Basic Python] 008. Pandas

gracie day 2025. 9. 10. 14:37
반응형

1. 시리즈(Series) 데이터 출력

1) 데이터 시리즈 사용하기

import pandas as pd

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

print(array)
a     사과
b    바나나
c     당근
dtype: object

 

2) dict 자료형을 series로 바꾸기

import pandas as pd

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

#Dict 자료형을 series로 바꾸기
array = pd.Series(data)
print(array)
a     사과
b    바나나
c     당근
dtype: object

2. 데이터 프레임

- 다수의 시리즈를 모아 처리하기 위한 목적으로 사용

- 표 형태로 데이터를 손쉽게 출력하고자 할 때 사용할 수 있음

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)
       word  frequency
Apple    사과          3
Banana  바나나          5
Carrot   당근          7

3. 시리즈 연산

동일한 index에 대해서 연산이 가능하다

import pandas as pd

#시리즈 3개
word_dict = {
    'Apple' : '사과',
    'Banana' : '바나나',
    'Carrot' : '당근'
}

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

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

#dict → series로 변환
word = pd.Series(word_dict)
frequency = pd.Series(frequency_dict)
importance = pd.Series(importance_dict)

#series 합치기
summary = pd.DataFrame({
    'word' : word,
    'frequency' : frequency,
    'importance':importance
})

#score 연산식 입력
score = summary['frequency']*summary['importance']
summary['score']=score

print(summary)
       word  frequency  importance  score
Apple    사과          3           3      9
Banana  바나나          5           2     10
Carrot   당근          7           1      7

4. 데이터 프레임 슬라이싱

import pandas as pd

#시리즈 3개
word_dict = {
    'Apple' : '사과',
    'Banana' : '바나나',
    'Carrot' : '당근'
}

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

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

#dict → series로 변환
word = pd.Series(word_dict)
frequency = pd.Series(frequency_dict)
importance = pd.Series(importance_dict)

#series 합치기
summary = pd.DataFrame({
    'word' : word,
    'frequency' : frequency,
    'importance':importance
})

print(summary)

#이름을 기준으로 슬라이싱
print(summary.loc['Banana':,'importance':]) #loc 함수, 행은 바나나부터, 열은 importance부터 가져오기

#index를 기준으로 슬라이싱
print(summary.iloc[1:3,2:])
       word  frequency  importance
Apple    사과          3           3
Banana  바나나          5           2
Carrot   당근          7           1
        importance
Banana           2
Carrot           1
        importance
Banana           2
Carrot           1

5. 데이터 프레임의 변경 및 추가

print(summary)

#데이터의 변경
summary.loc['Apple','importance']=5

#새로운 데이터 삽입
summary.loc['Elderberry'] = ['엘더베리',5,3]

print(summary)
       word  frequency  importance
Apple    사과          3           5
Banana  바나나          5           2
Carrot   당근          7           1
            word  frequency  importance
Apple         사과          3           5
Banana       바나나          5           2
Carrot        당근          7           1
Elderberry  엘더베리          5           3

6. 엑셀로 내보내기/불러오기

#내보내기 to_csv
summary.to_csv("summary.csv",encoding="utf-8-sig")

#불러오기 read_csv
saved = pd.read_csv("summary.csv", index_col=0)

print(saved)
            word  frequency  importance
Apple         사과          3           5
Banana       바나나          5           2
Carrot        당근          7           1
Elderberry  엘더베리          5           3

 

반응형