TIL.78_Intermediate Python (2)

소고기는레어·2021년 3월 2일
0

TIL 📝

목록 보기
80/96
post-thumbnail

2021. 03. 02 화요일

Intermediate Python

Dictionaries & Pandas

Dictionary

  • dictionary(사전)는 연관 배열로 Key와 Value가 쌍으로 이루어진 자료형이다.

  • 음식 list와 가격 list가 존재한다고 했을 때, 피자의 가격을 불러오기 위해서는 다음과 같이 해야한다.

index_pizza = food.index('pizza')
print(price[index_pizza])
  • 미리 만들어둔 사전을 사용한다면 다음과 같이 피자의 가격을 불러올 수 있다.
print(dict['pizza'])
  • 사전의 key는 중복될 수 있지만, 나중에 입력된 값이 기존의 값을 덮어쓰게 된다.

  • 또한 사전의 key는 불변객체여야만 한다.

Create dictionary

  • {중괄호} 와 콜론: 을 통해 사전을 만들 수 있다.
food = {'aqqle':'사과', 'pizza':'피자', 'melon':'메론', 'coffee':'커피'}

Access dictionary

  • key를 통해 사전의 value를 불러올 수 있다.

  • 사용할 수 있는 key는 다음 아래 메소드를 통해 확인할 수 있다.

print(food.keys())

#결과
food_keys(['apple', 'pizza', 'melon', 'coffee'])
  • key를 통해 사전의 value를 불러오는 방법은 아래와 같다.
print(food['pizza'])

#결과
피자

Dictionary Manipulation

  • 사전에 새로운 키와 값을 추가할 수 있다.
food['coke'] = '콜라'
print(food)
#결과
{'aqqle':'사과', 'pizza':'피자', 'melon':'메론', 'coffee':'커피', 'coke':'콜라'}
  • 사전에 특정 키가 존재하는지 확인할 수 있다.
print('coke' in food)

#결과
True
  • 특정 키에 대한 기존의 값을 수정할 수 있다.
food['coke'] = '코카콜라'
print(food)

#결과
{'aqqle':'사과', 'pizza':'피자', 'melon':'메론', 'coffee':'커피', 'coke':'코카콜라'}
  • 특정 키와 값을 삭제할 수 있다.
del(food['coke'])
print(food)

#결과
{'aqqle':'사과', 'pizza':'피자', 'melon':'메론', 'coffee':'커피'}

Dictionariception

  • list 안에 list가 포함될 수 있는 것 처럼, 사전에 포함된 값도 사전이 될 수 있다.(키만 아니면 된다.)
food = {'aqqle':{'korean':'사과', 'price':500}, 'pizza':{'korean':'피자', 'price':1000}}

print(food['pizza']['price'])

#결과
1000

Pandas

  • 라이브러리의 한 종류로, 행과 열로 이루어진 데이터 프레임을 만들어 데이터를 처리/분석하는데 사용한다.
  • import pandas 로 라이브러리를 불러온다.

Dictionary to DataFrame

  • 사전을 데이터프레임으로 만들 수 있다.
import pandas as pd

eng = ['apple', 'pizza', 'melon']
kor = ['사과', '피자', '메론']
price = [500, 1000, 700]

food_dict = {'english':eng, 'korean':kor,'price':price}

food = pd.DataFrame(food_dict)
print(food)

결과

englishkoreanprice
0apple사과500
1pizza피자1000
2melon메론700
  • 위 테이블의 0, 1, 2에 속하는 레이블을 내가 원하는 값으로 지정할 수 있다.
labels = ['app', 'piz', 'mel']
food.index = labels

print(food)

결과

englishkoreanprice
appapple사과500
pizpizza피자1000
melmelon메론700

CSV to DataFrame

  • csv파일을 데이터 프레임으로 불러올 수 있다.
import pandas as pd
food = pd.DataFrame(pd.read_csv('csv 경로'))
  • csv 파일을 데이터 프레임으로 불러올 때 판다스는 0으로 시작하는 레이블을 생성하여 불러오는데,
    index_col = 행번호 을 사용하면 판다스의 레이블 생성을 방지하고 csv 파일에 포함된 자체 레이블을 사용할 수 있다.
food = pd.DataFrame(pd.read_csv('csv 경로', index_col = 0))

Square Brackets

  • 데이터 프레임에서 특정 데이터 조회
  • Column 선택 시 대괄호를 두겹을 씌워야 데이터 프레임을 유지한 상태로 결과가 출력된다.
    • 한겹만 씌운다고 결과가 출력되지 않는 것은 아니다.
  • index로 조회할 때는 대괄호를 한 겹만 씌워도 데이터 프레임이 유지된다.
print(food[['korean', 'price']])

결과

koreanprice
app사과500
piz피자1000
mel메론700

print(food[0:2])

englishkoreanprice
appapple사과500
pizpizza피자1000

loc

  • 레이블 기반으로 데이터 조회
  • 마찬가지로 대괄호를 두겹 씌울 경우 데이터 프레임이 유지된다.
food.loc['piz']

#결과
english pizza
korean 피자
price 1000

food.loc[['piz']]

englishkoreanprice
pizpizza피자1000

food.loc[['piz'], ['english']]

english
pizpizza

food.loc[:, ['english']]

english
appapple
pizpizza
melmelon

iloc

  • 위치 기반으로 데이터 조회
food.loc[1]

#결과
english pizza
korean 피자
price 1000

food.loc[[1]]

englishkoreanprice
pizpizza피자1000

food.loc[[1], [0]]

english
pizpizza

food.loc[:, [0]]

english
appapple
pizpizza
melmelon
profile
https://www.rarebeef.co.kr/

0개의 댓글