[코드잇] 데이터 사이언스 Toolkit 4. pandas

2024. 8. 19. 18:11·데이터 사이언스/인강
행=가로=ROW=HORIZONTAL=엑셀쉬트의 숫자 방향 
행가(Hanger) + 가 로(ROW)라고 외우면 쉬울듯

행가로우~ 

 

열=세=COLUMN=VERTICAL=엑셀쉬트의 영어 방향
열세(쉽세) + 기둥(COLUMN)은 수직으로 서 있다고 외우면 쉬울듯

 

열세콜!


5. pandas

5-1 pandas와 DataFrame

numpy array : 복잡한 수학 연산을 할 때 사용

  • 가독성이 떨어짐
  • 정보에 대한 레이블 삽입 불가
  • 한 가지 데이터 타입만 사용 가능

 

pandas : 표 형태의 데이터를 간편하게 다루고 싶을 때

  • 데이터 불러오기
  • 데이터 가공
  • 데이터 분석
  • 데이터 시각화

 

 

In [1]:
import pandas as pd
 
In [2]:
df = pd.DataFrame({
    'category' : ['skirt', 'sweater', 'coat', 'jeans'],
    'quantity' : [10, 15, 6, 11],
    'price' : [30000, 60000, 95000, 35000]
})
df
 
Out[2]:
  category quantity price
0 skirt 10 30000
1 sweater 15 60000
2 coat 6 95000
3 jeans 11 35000
 
In [3]:
df['quantity']
 
Out[3]:
0    10
1    15
2     6
3    11
Name: quantity, dtype: int64
 
In [4]:
type(df['quantity'])
 
Out[4]:
pandas.core.series.Series
 
In [5]:
df['quantity'].mean()
 
Out[5]:
10.5
 
In [6]:
df['quantity'].sum()
 
Out[6]:
42
 
In [7]:
df['quantity'].min()
 
Out[7]:
6
 
In [8]:
df['quantity'] * df['price']
 
Out[8]:
0    300000
1    900000
2    570000
3    385000
dtype: int64
 

5-2 DataFrame을 만드는 다양한 방법

이번 레슨에서는 DataFrame을 만드는 다양한 방법에 대해 알아보도록 하겠습니다. 일단 아래와 같이 NumPy와 pandas 라이브러리를 불러올게요.

import pandas as pd 
import numpy as np

 

그리고 지난 시간에 배운 것처럼 pd.DataFrame() 안에 DataFrame으로 만들 재료를 넣어 주면 되는데요. 이때, 아래와 같이 딕셔너리를 넣기도 하지만, 리스트나 NumPy array를 넣을 수도 있습니다.

 

dict_df = pd.DataFrame({ 
	'category': ['skirt', 'sweater', 'coat', 'jeans'], 
    'quantity': [10, 15, 6, 11], 
    'price': [30000, 60000, 95000, 35000] 
})

 

그러면 이번엔 2차원 리스트와 2차원 NumPy array를 가지고 DataFrame을 만들어 볼게요. 아래 코드를 보면, two_dimensional_list라는 2차원 리스트(list of lists)를 가지고 list_df를 만들었고 two_dimensional_array라는 2차원 NumPy array를 가지고 array_df를 만들었습니다.

 

two_dimensional_list = [ 
	['skirt', 10, 30000], 
    ['sweater', 15, 60000], 
    ['coat', 6, 95000], 
    ['jeans', 11, 35000] 
] 
two_dimensional_array = np.array(two_dimensional_list) 

list_df = pd.DataFrame(two_dimensional_list) 
array_df = pd.DataFrame(two_dimensional_array)

 

이렇게 만든 list_df와 array_df를 출력해 보면, 둘다 아래와 같은 결과물이 나오는데요. DataFrame을 만들 때 컬럼의 이름을 따로 설정하지 않았기 때문에, 컬럼 자리에 그냥 0부터 시작하는 숫자값이 들어 있습니다. 이러면 각 컬럼이 무엇을 의미하는 지 알 수 없어서 불편하겠죠?

DataFrame을 만들 때 columns라는 옵션을 사용해서 컬럼명을 설정하는 것도 가능합니다.

 

list_df = pd.DataFrame(two_dimensional_list, columns=['category', 'quantity', 'price']) 
array_df = pd.DataFrame(two_dimensional_array, columns=['category', 'quantity', 'price'])

 

위와 같이 컬럼명을 설정한 뒤 다시 list_df와 array_df를 출력해 보면, 컬럼명이 아래 이미지처럼 잘 바뀌어 있는 것을 확인할 수 있죠.

마지막으로, 딕셔너리가 담겨 있는 리스트로 DataFrame을 만들 수도 있는데요. 아래 코드에서는 dict_list라는 리스트를 가지고 dict_list_df라는 DataFrame을 만들었습니다. 이것 또한 위에서 만든 DataFrame과 동일한 형태를 가지고 있죠.

dict_list = [ 
	{'category': 'skirt', 'quantity': 10, 'price': 30000}, 
    {'category': 'sweater', 'quantity': 15, 'price': 60000}, 
    {'category': 'coat', 'quantity': 6, 'price': 95000}, 
    {'category': 'jeans', 'quantity': 11, 'price': 35000} 
] 

df4 = pd.DataFrame(dict_list)

 

지금까지 DataFrame을 만드는 여러 가지 방법을 알아봤는데요. 이번 레슨에서 배운 내용을 모두 외울 필요는 없지만, 코드를 보고 대략 어떤 형태의 DataFrame이 만들어지는지 이해할 수 있다면 앞으로 데이터 분야를 학습하실 때 많은 도움이 될 겁니다.


5-3 데이터 불러오기

CSV 파일 : Comma - Separated Values

: 값들은 쉼표로 나뉘어져 있다

 

In [1]:
import pandas as pd
 
In [2]:
burger_df = pd.read_csv("data/burger.csv", index_col = 1) # burger.csv 파일을 읽고 index_col 버전을 1 버전으로 진행
burger_df
 
Out[2]:
  product_name carb protein fat sodium category
calories            
660 Whopper 49 28 40 1.0 Burgers
740 Cheese Whopper 50 32 46 1.3 Burgers
900 Double Whopper 49 48 58 1.0 Burgers
980 Double Cheese Whopper 50 52 64 1.4 Burgers
310 Whopper Junior 27 13 18 0.4 Burgers
1150 Bacon King 49 61 79 2.2 Burgers
700 Single Stacker King 48 35 42 1.4 Burgers
1050 Double Stacker King 49 61 68 NaN Burgers
240 Hamburger 26 13 10 0.4 Burgers
280 Cheeseburger 27 15 13 0.6 Burgers
350 Double Hamburger 26 21 18 0.4 Burgers
390 Double Cheeseburger 27 23 21 0.6 Burgers
670 Crispy Chicken 54 23 41 1.1 Chicken
170 Chicken Nuggets 11 8 11 0.3 Chicken
210 Spicy Chicken Nuggets 11 8 15 0.6 Chicken
 
In [3]:
burger_df = pd.read_csv("data/burger.csv", header = None, # 헤더를 none으로 만들면 01234 순서로 됨
                        names = ["product_name", "calories", "carb", "protein", "fat", "sodium", "category"]) # 헤더 none에 이름을 지정해줌
burger_df
 
Out[3]:
  product_name calories carb protein fat sodium category
0 product_name calories carb protein fat sodium category
1 Whopper 660 49 28 40 1.0 Burgers
2 Cheese Whopper 740 50 32 46 1.3 Burgers
3 Double Whopper 900 49 48 58 1.0 Burgers
4 Double Cheese Whopper 980 50 52 64 1.4 Burgers
5 Whopper Junior 310 27 13 18 0.4 Burgers
6 Bacon King 1150 49 61 79 2.2 Burgers
7 Single Stacker King 700 48 35 42 1.4 Burgers
8 Double Stacker King 1050 49 61 68 NaN Burgers
9 Hamburger 240 26 13 10 0.4 Burgers
10 Cheeseburger 280 27 15 13 0.6 Burgers
11 Double Hamburger 350 26 21 18 0.4 Burgers
12 Double Cheeseburger 390 27 23 21 0.6 Burgers
13 Crispy Chicken 670 54 23 41 1.1 Chicken
14 Chicken Nuggets 170 11 8 11 0.3 Chicken
15 Spicy Chicken Nuggets 210 11 8 15 0.6 Chicken

5-4 프리미어 리그 데이터 탐색하기

int64 뜻

  • int : 이 데이터가 정수형
  • 뒤의 숫자 : 데이터를 표현하기 위해 사용하는 저장 공간의 크기(bit)

5-5 DataFrame에서 일부만 선택하기

  • iloc : inter location, 즉 정수 값의 인덱스를 통해서 데이터를 받아옴
  • loc : location, 위치를 통해서 데이터를 받아온다
  • 그냥 대괄호 쓰는 방식

 

In [1]:
import pandas as pd
 
In [2]:
burger_df = pd.read_csv("data/burger.csv", index_col = 0) # burger.csv 파일을 읽고 index_col 버전을 1 버전으로 진행
burger_df
 
Out[2]:
  calories carb protein fat sodium category
product_name            
Whopper 660 49 28 40 1.0 Burgers
Cheese Whopper 740 50 32 46 1.3 Burgers
Double Whopper 900 49 48 58 1.0 Burgers
Double Cheese Whopper 980 50 52 64 1.4 Burgers
Whopper Junior 310 27 13 18 0.4 Burgers
Bacon King 1150 49 61 79 2.2 Burgers
Single Stacker King 700 48 35 42 1.4 Burgers
Double Stacker King 1050 49 61 68 NaN Burgers
Hamburger 240 26 13 10 0.4 Burgers
Cheeseburger 280 27 15 13 0.6 Burgers
Double Hamburger 350 26 21 18 0.4 Burgers
Double Cheeseburger 390 27 23 21 0.6 Burgers
Crispy Chicken 670 54 23 41 1.1 Chicken
Chicken Nuggets 170 11 8 11 0.3 Chicken
Spicy Chicken Nuggets 210 11 8 15 0.6 Chicken
 
In [3]:
burger_df.iloc[3, 1] # iloc 쓰는 방식 = [로우, 컬럼]
 
Out[3]:
50
 
In [4]:
burger_df.iloc[[2, 3], [1, 2]] # 로우 2,3 컬럼 1,2 데이터를 가져오고 싶다
 
Out[4]:
  carb protein
product_name    
Double Whopper 49 48
Double Cheese Whopper 50 52
 
In [5]:
burger_df.iloc[1:4, :3] # 로우 1,2,3 컬럼 0,1,2
 
Out[5]:
  calories carb protein
product_name      
Cheese Whopper 740 50 32
Double Whopper 900 49 48
Double Cheese Whopper 980 50 52
 
In [6]:
burger_df.iloc[1:4]
 
Out[6]:
  calories carb protein fat sodium category
product_name            
Cheese Whopper 740 50 32 46 1.3 Burgers
Double Whopper 900 49 48 58 1.0 Burgers
Double Cheese Whopper 980 50 52 64 1.4 Burgers
 
In [7]:
burger_df.loc['Double Whopper', 'protein'] # loc 쓰는 방식 : iloc과는 다르게 loc은 이름을 사용
 
Out[7]:
48
 
In [8]:
burger_df.loc[['Whopper', 'Double Whopper'], 'protein']
 
Out[8]:
product_name
Whopper           28
Double Whopper    48
Name: protein, dtype: int64
 
In [9]:
burger_df.loc[['Whopper', 'Double Whopper'], ['carb', 'protein', 'fat']]
 
Out[9]:
  carb protein fat
product_name      
Whopper 49 28 40
Double Whopper 49 48 58
 
In [10]:
burger_df.loc['Double Whopper':'Bacon King', 'calories':'fat']
 
Out[10]:
  calories carb protein fat
product_name        
Double Whopper 900 49 48 58
Double Cheese Whopper 980 50 52 64
Whopper Junior 310 27 13 18
Bacon King 1150 49 61 79
 
In [11]:
burger_df.loc['Double Whopper':'Bacon King']
 
Out[11]:
  calories carb protein fat sodium category
product_name            
Double Whopper 900 49 48 58 1.0 Burgers
Double Cheese Whopper 980 50 52 64 1.4 Burgers
Whopper Junior 310 27 13 18 0.4 Burgers
Bacon King 1150 49 61 79 2.2 Burgers
 
In [12]:
burger_df['calories']
 
Out[12]:
product_name
Whopper                   660
Cheese Whopper            740
Double Whopper            900
Double Cheese Whopper     980
Whopper Junior            310
Bacon King               1150
Single Stacker King       700
Double Stacker King      1050
Hamburger                 240
Cheeseburger              280
Double Hamburger          350
Double Cheeseburger       390
Crispy Chicken            670
Chicken Nuggets           170
Spicy Chicken Nuggets     210
Name: calories, dtype: int64
 
In [13]:
burger_df[['calories', 'fat']]
 
Out[13]:
  calories fat
product_name    
Whopper 660 40
Cheese Whopper 740 46
Double Whopper 900 58
Double Cheese Whopper 980 64
Whopper Junior 310 18
Bacon King 1150 79
Single Stacker King 700 42
Double Stacker King 1050 68
Hamburger 240 10
Cheeseburger 280 13
Double Hamburger 350 18
Double Cheeseburger 390 21
Crispy Chicken 670 41
Chicken Nuggets 170 11
Spicy Chicken Nuggets 210 15
 
In [14]:
burger_df['Double Whopper':'Bacon King'] # 그냥 대괄호 쓰는 방식
 
Out[14]:
  calories carb protein fat sodium category
product_name            
Double Whopper 900 49 48 58 1.0 Burgers
Double Cheese Whopper 980 50 52 64 1.4 Burgers
Whopper Junior 310 27 13 18 0.4 Burgers
Bacon King 1150 49 61 79 2.2 Burgers

5-7 DataFrame과 불린 인덱싱

In [14]:
type(burger_df['calories'] < 500)
 
Out[14]:
pandas.core.series.Series
 
In [15]:
burger_df.loc[burger_df['calories'] < 500] # True였던 메뉴만 필터링되어 나옴 중요!
 
Out[15]:
  calories carb protein fat sodium category
product_name            
Whopper Junior 310 27 13 18 0.4 Burgers
Hamburger 240 26 13 10 0.4 Burgers
Cheeseburger 280 27 15 13 0.6 Burgers
Double Hamburger 350 26 21 18 0.4 Burgers
Double Cheeseburger 390 27 23 21 0.6 Burgers
Chicken Nuggets 170 11 8 11 0.3 Chicken
Spicy Chicken Nuggets 210 11 8 15 0.6 Chicken
 
In [16]:
burger_df.loc[burger_df['calories'] < 500, ['carb', 'protein']]
 
Out[16]:
  carb protein
product_name    
Whopper Junior 27 13
Hamburger 26 13
Cheeseburger 27 15
Double Hamburger 26 21
Double Cheeseburger 27 23
Chicken Nuggets 11 8
Spicy Chicken Nuggets 11 8
 
In [17]:
burger_df.loc[burger_df['calories'] < 500, 'calories':'fat']
 
Out[17]:
  calories carb protein fat
product_name        
Whopper Junior 310 27 13 18
Hamburger 240 26 13 10
Cheeseburger 280 27 15 13
Double Hamburger 350 26 21 18
Double Cheeseburger 390 27 23 21
Chicken Nuggets 170 11 8 11
Spicy Chicken Nuggets 210 11 8 15
 
In [18]:
mask = burger_df['calories'] < 500 # 변수 지정
burger_df[mask]
 
Out[18]:
  calories carb protein fat sodium category
product_name            
Whopper Junior 310 27 13 18 0.4 Burgers
Hamburger 240 26 13 10 0.4 Burgers
Cheeseburger 280 27 15 13 0.6 Burgers
Double Hamburger 350 26 21 18 0.4 Burgers
Double Cheeseburger 390 27 23 21 0.6 Burgers
Chicken Nuggets 170 11 8 11 0.3 Chicken
Spicy Chicken Nuggets 210 11 8 15 0.6 Chicken
 
In [19]:
burger_df.loc[mask, 'calories':'fat']
 
Out[19]:
  calories carb protein fat
product_name        
Whopper Junior 310 27 13 18
Hamburger 240 26 13 10
Cheeseburger 280 27 15 13
Double Hamburger 350 26 21 18
Double Cheeseburger 390 27 23 21
Chicken Nuggets 170 11 8 11
Spicy Chicken Nuggets 210 11 8 15

5-9 데이터 수정 및 추가하기

 

 
In [1]:
import pandas as pd
 
In [2]:
burger_df = pd.read_csv("data/burger.csv", index_col = 0) # burger.csv 파일을 읽고 index_col 버전을 1 버전으로 진행
burger_df
 
Out[2]:
  calories carb protein fat sodium category
product_name            
Whopper 660 49 28 40 1.0 Burgers
Cheese Whopper 740 50 32 46 1.3 Burgers
Double Whopper 900 49 48 58 1.0 Burgers
Double Cheese Whopper 980 50 52 64 1.4 Burgers
Whopper Junior 310 27 13 18 0.4 Burgers
Bacon King 1150 49 61 79 2.2 Burgers
Single Stacker King 700 48 35 42 1.4 Burgers
Double Stacker King 1050 49 61 68 NaN Burgers
Hamburger 240 26 13 10 0.4 Burgers
Cheeseburger 280 27 15 13 0.6 Burgers
Double Hamburger 350 26 21 18 0.4 Burgers
Double Cheeseburger 390 27 23 21 0.6 Burgers
Crispy Chicken 670 54 23 41 1.1 Chicken
Chicken Nuggets 170 11 8 11 0.3 Chicken
Spicy Chicken Nuggets 210 11 8 15 0.6 Chicken
 
In [3]:
burger_df.loc["Double Stacker King", "sodium"]
 
Out[3]:
nan
 
In [4]:
burger_df.loc["Double Stacker King", "sodium"] = 1.9
 
In [5]:
burger_df
 
Out[5]:
  calories carb protein fat sodium category
product_name            
Whopper 660 49 28 40 1.0 Burgers
Cheese Whopper 740 50 32 46 1.3 Burgers
Double Whopper 900 49 48 58 1.0 Burgers
Double Cheese Whopper 980 50 52 64 1.4 Burgers
Whopper Junior 310 27 13 18 0.4 Burgers
Bacon King 1150 49 61 79 2.2 Burgers
Single Stacker King 700 48 35 42 1.4 Burgers
Double Stacker King 1050 49 61 68 1.9 Burgers
Hamburger 240 26 13 10 0.4 Burgers
Cheeseburger 280 27 15 13 0.6 Burgers
Double Hamburger 350 26 21 18 0.4 Burgers
Double Cheeseburger 390 27 23 21 0.6 Burgers
Crispy Chicken 670 54 23 41 1.1 Chicken
Chicken Nuggets 170 11 8 11 0.3 Chicken
Spicy Chicken Nuggets 210 11 8 15 0.6 Chicken
 
In [6]:
burger_df.loc["Cheeseburger"] # Cheeseburger 출력
 
Out[6]:
calories        280
carb             27
protein          15
fat              13
sodium          0.6
category    Burgers
Name: Cheeseburger, dtype: object
 
In [7]:
burger_df.loc["Cheeseburger"] = [360, 24, 18, 21, 0.7, 'Burger'] # Cheeseburger 한 줄을 통째로 바꿈
 
In [8]:
burger_df
 
Out[8]:
  calories carb protein fat sodium category
product_name            
Whopper 660 49 28 40 1.0 Burgers
Cheese Whopper 740 50 32 46 1.3 Burgers
Double Whopper 900 49 48 58 1.0 Burgers
Double Cheese Whopper 980 50 52 64 1.4 Burgers
Whopper Junior 310 27 13 18 0.4 Burgers
Bacon King 1150 49 61 79 2.2 Burgers
Single Stacker King 700 48 35 42 1.4 Burgers
Double Stacker King 1050 49 61 68 1.9 Burgers
Hamburger 240 26 13 10 0.4 Burgers
Cheeseburger 360 24 18 21 0.7 Burger
Double Hamburger 350 26 21 18 0.4 Burgers
Double Cheeseburger 390 27 23 21 0.6 Burgers
Crispy Chicken 670 54 23 41 1.1 Chicken
Chicken Nuggets 170 11 8 11 0.3 Chicken
Spicy Chicken Nuggets 210 11 8 15 0.6 Chicken
 
In [9]:
burger_df['sodium']
 
Out[9]:
product_name
Whopper                  1.0
Cheese Whopper           1.3
Double Whopper           1.0
Double Cheese Whopper    1.4
Whopper Junior           0.4
Bacon King               2.2
Single Stacker King      1.4
Double Stacker King      1.9
Hamburger                0.4
Cheeseburger             0.7
Double Hamburger         0.4
Double Cheeseburger      0.6
Crispy Chicken           1.1
Chicken Nuggets          0.3
Spicy Chicken Nuggets    0.6
Name: sodium, dtype: float64
 
In [10]:
burger_df['sodium'] = [1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.1,2.2,2.3,2.4,2.5]
 
In [11]:
burger_df['sodium']
 
Out[11]:
product_name
Whopper                  1.1
Cheese Whopper           1.2
Double Whopper           1.3
Double Cheese Whopper    1.4
Whopper Junior           1.5
Bacon King               1.6
Single Stacker King      1.7
Double Stacker King      1.8
Hamburger                1.9
Cheeseburger             2.0
Double Hamburger         2.1
Double Cheeseburger      2.2
Crispy Chicken           2.3
Chicken Nuggets          2.4
Spicy Chicken Nuggets    2.5
Name: sodium, dtype: float64
 
In [12]:
burger_df['sodium'] = 1
 
In [13]:
burger_df
 
Out[13]:
  calories carb protein fat sodium category
product_name            
Whopper 660 49 28 40 1 Burgers
Cheese Whopper 740 50 32 46 1 Burgers
Double Whopper 900 49 48 58 1 Burgers
Double Cheese Whopper 980 50 52 64 1 Burgers
Whopper Junior 310 27 13 18 1 Burgers
Bacon King 1150 49 61 79 1 Burgers
Single Stacker King 700 48 35 42 1 Burgers
Double Stacker King 1050 49 61 68 1 Burgers
Hamburger 240 26 13 10 1 Burgers
Cheeseburger 360 24 18 21 1 Burger
Double Hamburger 350 26 21 18 1 Burgers
Double Cheeseburger 390 27 23 21 1 Burgers
Crispy Chicken 670 54 23 41 1 Chicken
Chicken Nuggets 170 11 8 11 1 Chicken
Spicy Chicken Nuggets 210 11 8 15 1 Chicken
 
In [14]:
burger_df.loc['Tripple Whopper'] = [1130, 49, 67, 75, 1.1, 'Burger'] # 새로운 행이 추가됨
burger_df
 
Out[14]:
  calories carb protein fat sodium category
product_name            
Whopper 660 49 28 40 1.0 Burgers
Cheese Whopper 740 50 32 46 1.0 Burgers
Double Whopper 900 49 48 58 1.0 Burgers
Double Cheese Whopper 980 50 52 64 1.0 Burgers
Whopper Junior 310 27 13 18 1.0 Burgers
Bacon King 1150 49 61 79 1.0 Burgers
Single Stacker King 700 48 35 42 1.0 Burgers
Double Stacker King 1050 49 61 68 1.0 Burgers
Hamburger 240 26 13 10 1.0 Burgers
Cheeseburger 360 24 18 21 1.0 Burger
Double Hamburger 350 26 21 18 1.0 Burgers
Double Cheeseburger 390 27 23 21 1.0 Burgers
Crispy Chicken 670 54 23 41 1.0 Chicken
Chicken Nuggets 170 11 8 11 1.0 Chicken
Spicy Chicken Nuggets 210 11 8 15 1.0 Chicken
Tripple Whopper 1130 49 67 75 1.1 Burger
 
In [15]:
burger_df['brand'] = 'Burger King' # 새로운 열이 추가됨
burger_df
 
Out[15]:
  calories carb protein fat sodium category brand
product_name              
Whopper 660 49 28 40 1.0 Burgers Burger King
Cheese Whopper 740 50 32 46 1.0 Burgers Burger King
Double Whopper 900 49 48 58 1.0 Burgers Burger King
Double Cheese Whopper 980 50 52 64 1.0 Burgers Burger King
Whopper Junior 310 27 13 18 1.0 Burgers Burger King
Bacon King 1150 49 61 79 1.0 Burgers Burger King
Single Stacker King 700 48 35 42 1.0 Burgers Burger King
Double Stacker King 1050 49 61 68 1.0 Burgers Burger King
Hamburger 240 26 13 10 1.0 Burgers Burger King
Cheeseburger 360 24 18 21 1.0 Burger Burger King
Double Hamburger 350 26 21 18 1.0 Burgers Burger King
Double Cheeseburger 390 27 23 21 1.0 Burgers Burger King
Crispy Chicken 670 54 23 41 1.0 Chicken Burger King
Chicken Nuggets 170 11 8 11 1.0 Chicken Burger King
Spicy Chicken Nuggets 210 11 8 15 1.0 Chicken Burger King
Tripple Whopper 1130 49 67 75 1.1 Burger Burger King
 
In [16]:
burger_df.loc[burger_df['calories'] >= 500] # calories 열을 받아오고 500 이상인 경우
 
Out[16]:
  calories carb protein fat sodium category brand
product_name              
Whopper 660 49 28 40 1.0 Burgers Burger King
Cheese Whopper 740 50 32 46 1.0 Burgers Burger King
Double Whopper 900 49 48 58 1.0 Burgers Burger King
Double Cheese Whopper 980 50 52 64 1.0 Burgers Burger King
Bacon King 1150 49 61 79 1.0 Burgers Burger King
Single Stacker King 700 48 35 42 1.0 Burgers Burger King
Double Stacker King 1050 49 61 68 1.0 Burgers Burger King
Crispy Chicken 670 54 23 41 1.0 Chicken Burger King
Tripple Whopper 1130 49 67 75 1.1 Burger Burger King
 
In [17]:
burger_df.loc[burger_df['calories'] >= 500, 'high_calorie'] = True # 500 이상은 high calorie = True
burger_df.loc[burger_df['calories'] < 500, 'high_calorie'] = False # 500 이하는 high_calorie = False
burger_df
 
Out[17]:
  calories carb protein fat sodium category brand high_calorie
product_name                
Whopper 660 49 28 40 1.0 Burgers Burger King True
Cheese Whopper 740 50 32 46 1.0 Burgers Burger King True
Double Whopper 900 49 48 58 1.0 Burgers Burger King True
Double Cheese Whopper 980 50 52 64 1.0 Burgers Burger King True
Whopper Junior 310 27 13 18 1.0 Burgers Burger King False
Bacon King 1150 49 61 79 1.0 Burgers Burger King True
Single Stacker King 700 48 35 42 1.0 Burgers Burger King True
Double Stacker King 1050 49 61 68 1.0 Burgers Burger King True
Hamburger 240 26 13 10 1.0 Burgers Burger King False
Cheeseburger 360 24 18 21 1.0 Burger Burger King False
Double Hamburger 350 26 21 18 1.0 Burgers Burger King False
Double Cheeseburger 390 27 23 21 1.0 Burgers Burger King False
Crispy Chicken 670 54 23 41 1.0 Chicken Burger King True
Chicken Nuggets 170 11 8 11 1.0 Chicken Burger King False
Spicy Chicken Nuggets 210 11 8 15 1.0 Chicken Burger King False
Tripple Whopper 1130 49 67 75 1.1 Burger Burger King True

5-11 pandas에서 그래프 그리기

 

 

In [1]:
import pandas as pd
import matplotlib.pyplot as plt
 
In [2]:
sales_df = pd.DataFrame({
    'quarter' : ['10', '20', '30', '40'],
    'revenue' : [1360, 2650, 2070, 4150],
    'cost' : [1240, 1970, 1750, 2760]
})
sales_df
 
Out[2]:
  quarter revenue cost
0 10 1360 1240
1 20 2650 1970
2 30 2070 1750
3 40 4150 2760
 
In [3]:
plt.plot(sales_df['quarter'], sales_df['revenue'])
plt.show()
 
 
No description has been provided for this image
 
In [4]:
sales_df.plot()
plt.show()
 
 
No description has been provided for this image
 
In [5]:
sales_df.plot(x='quarter', y='revenue')
plt.show()
 
 
No description has been provided for this image
 
In [6]:
sales_df.plot(x='quarter', y='revenue', kind='bar')
plt.show()
 
 
No description has been provided for this image
 
In [7]:
sales_df.plot(y='revenue', kind='pie', labels= ['1Q', '2Q', '3Q', '4Q'])
plt.show()
 
 
No description has been provided for this image
 
In [8]:
burger_df = pd.read_csv('data/burger.csv')
burger_df
 
Out[8]:
  product_name calories carb protein fat sodium category
0 Whopper 660 49 28 40 1.0 Burgers
1 Cheese Whopper 740 50 32 46 1.3 Burgers
2 Double Whopper 900 49 48 58 1.0 Burgers
3 Double Cheese Whopper 980 50 52 64 1.4 Burgers
4 Whopper Junior 310 27 13 18 0.4 Burgers
5 Bacon King 1150 49 61 79 2.2 Burgers
6 Single Stacker King 700 48 35 42 1.4 Burgers
7 Double Stacker King 1050 49 61 68 NaN Burgers
8 Hamburger 240 26 13 10 0.4 Burgers
9 Cheeseburger 280 27 15 13 0.6 Burgers
10 Double Hamburger 350 26 21 18 0.4 Burgers
11 Double Cheeseburger 390 27 23 21 0.6 Burgers
12 Crispy Chicken 670 54 23 41 1.1 Chicken
13 Chicken Nuggets 170 11 8 11 0.3 Chicken
14 Spicy Chicken Nuggets 210 11 8 15 0.6 Chicken
 
In [9]:
burger_df.plot(x='fat', y='calories', kind='scatter') # 산점
plt.show()
 
 
No description has been provided for this image

 

저작자표시

'데이터 사이언스 > 인강' 카테고리의 다른 글

[코드잇] DataFrame 마스터하기  (2) 2024.09.09
[코드잇] 데이터 사이언스 수료증들  (0) 2024.09.09
[코드잇] 데이터 사이언스 Toolkit 3. Matplotlib  (0) 2024.08.07
[코드잇] 데이터 사이언스 Toolkit 2. Numpy  (0) 2024.08.07
[코드잇] 기초 통계와 데이터 시각화  (0) 2024.08.05
'데이터 사이언스/인강' 카테고리의 다른 글
  • [코드잇] DataFrame 마스터하기
  • [코드잇] 데이터 사이언스 수료증들
  • [코드잇] 데이터 사이언스 Toolkit 3. Matplotlib
  • [코드잇] 데이터 사이언스 Toolkit 2. Numpy
smile blog
smile blog
건국대 첨단바이오공학부 & 컴퓨터공학부 BT & IT 기술로 희망을 꿈 꿉니당
  • smile blog
    스마일 블로그
    smile blog
  • 전체
    오늘
    어제
    • 분류 전체보기 (816) N
      • 일상 생각들 (2)
      • 학과에 대해 (4)
        • 첨단바이오공학부 (4)
        • 컴퓨터공학부 (0)
      • -------- 프로젝트 -------- (0)
      • [DS] 토이 프로젝트 (1)
      • [Web, Game, XR] 토이 프로젝트 (11)
      • 경진대회 (1)
      • -------- 진로 -------- (0)
      • 생물정보학자 (18)
        • 데이터 과학이란? (0)
        • 되는 방법 (8)
        • 책 추천 (2)
        • 인강 (1)
        • 대학 (2)
        • 회사 (1)
        • 학원 (2)
        • 학회 (2)
      • 디지털 헬스케어 (72)
        • 방법 (8)
        • 생각들 (10)
        • 공부법 (4)
        • 책 추천 (2)
        • 학원 (2)
        • 참고 (2)
        • 대학 (3)
        • 회사 (3)
        • 인강 (2)
        • 게임 엔진들 (1)
        • 게임 프로그래머 개론 (2)
        • 게임 프로그래머 취업 전략 가이드 (7)
        • 취업 서류 (1)
        • 애정하는 게임들 (4)
        • XR 테크니컬 아티스트 (9)
        • 영화, 애니메이션 테크니컬 디렉터 (12)
      • -------- 기초 학문 -------- (0)
      • 생명과학 이야기 (2)
        • 대학 강의 (2)
      • 화학 이야기 (0)
      • 컴퓨터과학 이야기 (0)
      • 통계학 이야기 (0)
      • 수학 이야기 (1)
        • 공학 수학 (1)
      • 영어 이야기 (1)
      • 심리학 이야기 (7)
        • 현대인과 정신건강 (7)
      • -------- 컴퓨터 언어 -------- (0)
      • Python (3)
        • 나도코딩의 파이썬 입문 (1)
        • 파이썬 관련 정보 (1)
      • SQL (0)
      • C 언어 (32)
        • 혼자 공부하는 C언어 요약 (1)
        • [책 정리] 혼자 공부하는 C언어 (31)
      • C++ (33)
        • 명품 C++ 프로그래밍 요약 (1)
        • [책 정리] 명품 C++ 프로그래밍 (27)
        • C++ STL (0)
        • 뇌를 자극하는 C++ STL (5)
      • -------- 생명과학 -------- (0)
      • 생화학 (5)
        • 대학 강의 (5)
      • 분자세포생물학 (3)
        • 대학 강의 (3)
      • 유전자치료공학 (2)
        • 대학 강의 (2)
      • 생명정보학 (5)
        • 대학 강의 (5)
      • 약리학 (2)
        • 대학 강의 (2)
      • -------- 컴퓨터과학 -------- (0)
      • 자료구조와 알고리즘 (8)
        • 자료구조와 알고리즘의 정의 (3)
        • [책 정리] C언어로 쉽게 풀어쓴 자료구조 요약 (1)
        • [인강] 자료구조와 알고리즘 (2)
        • 코딩 테스트 대비하기! (1)
      • 컴퓨터 회로 (0)
      • 컴퓨터 구조 (43)
        • 컴퓨터 구조와 운영체제 요약 (1)
        • ---------------------------------------- (0)
        • [전공 책 정리] 컴퓨터 구조 및 설계 (1)
        • Ch1. 컴퓨터 추상화 및 관련 기술 (8)
        • Ch2. 명령어 : 컴퓨터 언어 (11)
        • Ch3. 컴퓨터 연산 (8)
        • Ch4. 프로세서 (11)
        • Ch5. 메모리 계층구조 (3)
        • Ch6. 병렬 프로세서 : 클라이언트에서 클라우드까지 (0)
      • 시스템 프로그래밍 (15)
        • [책 정리] 시스템 프로그래밍 유닉스 & 리눅스 (0)
        • [인강] 리눅스 시스템 프로그래밍 (2)
        • 리눅스에서 코딩이란? (8)
        • 대학교 강의 정리 (5)
      • 운영체제 (0)
      • 컴퓨터 네트워크 (37)
        • 모두의 네트워크 요약 (1)
        • [책 정리] 모두의 네트워크 (10)
        • ---------------------------------------- (0)
        • [전공 책 정리] 컴퓨터 네트워킹 하향식 접근 8판 (1)
        • Ch1. 컴퓨터 네트워크와 인터넷 (7)
        • Ch2. 애플리케이션 계층 (7)
        • Ch3. 트랜스포트 계층 (8)
        • Ch4. 네트워크 계층 : 데이터 평면 (3)
        • Ch5. 네트워크 계층 : 제어 평면 (0)
        • Ch6. 링크 계층과 근거리 네트워크 (0)
        • Ch7. 무선 및 이동 네트워크 (0)
        • Ch8. 컴퓨터 네트워크 보안 (0)
      • 데이터베이스 (1)
      • -------- 데이터과학 -------- (0)
      • 데이터 사이언스 (8)
        • 인강 (8)
      • 데이터 분석 (2)
        • 인강 (2)
      • 머신러닝 (2)
        • 대학 수업 (2)
      • 인공지능 (11)
        • 대학교 강의 정리 (10)
        • 인공지능 관련 정보 (1)
      • -------- +a -------- (0)
      • Visual Studio Community (7)
        • 설치법 (1)
        • 단축키 (1)
        • 오류 (5)
      • Visual Studio Code (0)
      • 노션 (1)
      • 깃허브 (7)
        • 깃허브 사용법 (5)
        • 유니티, 언리얼 & 깃허브 (1)
        • 깃허브 주의사항 (1)
      • 챗GPT 활용법 (0)
      • 기타 feat. 프로그래밍 (7)
        • 프로그래머로 살아남기 (5)
        • 코딩 vs 프로그래밍 (1)
        • 애플 비전 프로 (1)
      • 메타버스 (5)
      • -------- 예술 -------- (0)
      • 음악 (1)
      • 미술 (0)
      • -------- XR -------- (0)
      • 유니티 이야기 (23)
        • 레트로의 유니티 게임 프로그래밍 에센스 요약 (4)
        • 유니티 관련 정보 (1)
        • 유니티 디버깅 (13)
        • 유니티 인강 (3)
        • 대학교 게임 프로그래밍 강의 (2)
      • 언리얼 이야기 (0)
        • 인생 언리얼 교과서 요약 (0)
      • 컴퓨터 그래픽스 (6)
        • OpenGL (6)
      • 가상현실 & 증강현실 (4)
        • 유니티 vr (4)
      • HCI 와 UI UX (7)
        • [책 정리] HCI 개론 (6)
      • -------- Design -------- (0)
      • 캐릭터 (1)
        • 모델링 (0)
        • 리깅 (1)
      • 포토샵 (3)
      • 3ds Max (7)
      • Maya (9)
        • 블로그 (1)
        • 인강 (6)
        • 대학교 (2)
      • Blender (14)
        • 책 (1)
        • 인강 (7)
        • 기타 (3)
        • 대학교 (3)
      • 아트 작업물들 (2)
      • 에셋 사이트 (1)
      • -------- 건강관리 -------- (0)
      • 건강관리 ft. 정현 (12)
        • 목 디스크 (2)
        • 눈 관리 (2)
        • 일상생활 습관 (6)
        • 일상생활 꿀팁 (2)
        • 사무직 꿀팁 (0)
      • 헬스의 정석 ft. 정현 (28)
        • 헬스와 건강 (8)
        • 헬스 구체화 정보 (6)
        • 헬스 유튜버 (1)
        • 헬스 서적 (1)
        • 도전 바디프로필! (11)
        • 헬스장 패션 (1)
      • -------- etc -------- (0)
      • 진로 관련 잡다한 글들 (34)
        • 진도율 (9)
        • 진로 관련 글들 (15)
        • 학교 강의 관련 글들 (10)
      • 인생 꿀 Tip (23)
        • 컴퓨터 초기 설정 (9)
        • 원격 데스크톱 (1)
        • 노트북 발열 (1)
        • 전자기기 (2)
        • 중고기기 팔기 (1)
        • 아이패드 필기 어플 (1)
        • 에어팟 (1)
        • 커피 (1)
        • 맥북 (1)
        • lg 그램 (1)
        • 검색엔진에서 내 티스토리 검색 (1)
        • hELLO 다크 모드 없애기 (1)
        • 인터넷 연결 문제 (1)
        • 키보드 문제 해결 (1)
      • 유튜브 (3)
      • 청춘 그리고 추억 (1)
      • 인생 계획표 (2)
        • 2024년 2학기 (1)
        • 2024년 여름방학 (0)
        • 2024년 1학기 (0)
        • 2023년 겨울방학 (1)
      • 다양한 글들 (98)
        • C++ STL (6)
        • Win32 API (24)
        • PushPush 게임 (13)
        • 컴퓨터구조 (1)
        • 자료구조와 알고리즘 (50)
        • 게임의 정의 (3)
        • 영상 회사 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • Dream
    • 코딩을 시작한 이유
    • 나를 소개합니다!
    • 블로그 공부법
    • IT & 가치 있는 일들
  • 인기 글

  • 태그

    컴퓨터 네트워크
    C++
    포인터
    배열
    데이터과학
    인공지능
    첨단바이오공학부
    리눅스
    코드잇
    데이터사이언스
    명령어
    unity
    의생명공학
    알고리즘
    블렌더
    생물정보학
    연산자
    C++ STL
    스택
    심리학
    의생명공학과
    리눅스 터미널
    생명공학
    C언어
    건국대
    유니티
    자료구조
    AI
    컴퓨터구조
    함수
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
smile blog
[코드잇] 데이터 사이언스 Toolkit 4. pandas
상단으로

티스토리툴바