판다

토마스 보젠, 2020년 9월

이 연습은 7장을 보완합니다.

연습

1.

이 연습 세트에서 우리는 다양한 식품의 탄소 발자국을 조사할 것입니다. 우리는 Kasia Kulma가 편집하고 R의 Tidy Tuesday 프로젝트에 기여한 데이터 세트를 활용할 것입니다.

pd라는 별칭을 사용하여 팬더를 가져오는 것부터 시작하세요.

# Your answer here.

2.

우리가 작업할 데이터세트에는 다음과 같은 열이 있습니다.

설명
국가 국가명
음식_카테고리 식품 카테고리
소비 소비량(kg/인/년)
co2_emission CO2 배출량(Kg CO2/인/년)

다음 URL에서 ’df’라는 데이터프레임으로 데이터세트를 가져옵니다: https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-02-18/food_consumption.csv

# Your answer here.

3.

데이터프레임에는 몇 개의 행과 열이 있나요?

# Your answer here.

4.

df의 각 열에 있는 데이터 유형은 무엇입니까?

# Your answer here.

5.

전체 데이터 세트의 평균 co2_emission은 무엇입니까?

# Your answer here.

6.

데이터세트에는 몇 가지 종류의 음식이 있나요? 데이터 세트에는 몇 개의 국가가 포함되어 있나요?

# Your answer here.

7.

데이터 세트의 최대 ’co2_emmission’은 무엇이며, 이는 어느 식품 유형 및 국가에 속합니까?

# Your answer here.

8.

적어도 하나의 식품 유형에 대해 연간 1인당 1000kg CO2 이상을 생산하는 국가는 몇 군데입니까?

# Your answer here.

9.

1인당 연간 쇠고기 소비량이 가장 적은 국가는 어디입니까?

# Your answer here.

10.

1인당 연간 대두 소비량이 가장 많은 국가는 어디입니까?

# Your answer here.

11.

데이터 세트에 포함된 모든 육류 제품(돼지고기, 가금류, 생선, 양고기 및 염소, 쇠고기)의 총 배출량은 얼마입니까?

# Your answer here.

12.

데이터 세트에 있는 다른 모든(육류가 아닌) 제품의 총 배출량은 얼마입니까?

# Your answer here.



솔루션

1.

온라인 비밀번호 공격은 누군가가 귀하의 계정에 액세스하기 위해 매우 많은 수의 사용자 이름/비밀번호 조합을 시도하여 귀하의 계정을 해킹하려고 시도하는 것입니다. 데이터세트의 각 ‘비밀번호’에 대해 ’값’ 열에는 ‘온라인 비밀번호 공격’으로 계정을 해킹하는 데 걸리는 예상 시간이 표시됩니다. ’time_unit’ 열에는 해당 시간 값의 단위(예: 시간, 일, 연도 등)가 표시됩니다.

각 비밀번호에 대한 “온라인 비밀번호 추측 시간”을 더 쉽게 비교할 수 있도록 ’값’이 동일한 단위이면 훨씬 더 좋을 것입니다. 따라서 첫 번째 작업은 모든 값을 시간 단위로 변환하는 것입니다(아래에 제공한 변환 단위를 가정합니다. 예를 들어 1일은 24시간, 1주는 168시간 등).

import pandas as pd

2.

우리가 작업할 데이터세트에는 다음과 같은 열이 있습니다.

설명
국가 국가명
음식_카테고리 식품 카테고리
소비 소비량(kg/인/년)
co2_emission CO2 배출량(Kg CO2/인/년)

다음 URL에서 ’df’라는 데이터프레임으로 데이터세트를 가져옵니다: https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-02-18/food_consumption.csv

url = "https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-02-18/food_consumption.csv"
df = pd.read_csv(url)
df
country food_category consumption co2_emmission
0 Argentina Pork 10.51 37.20
1 Argentina Poultry 38.66 41.53
2 Argentina Beef 55.48 1712.00
3 Argentina Lamb & Goat 1.56 54.63
4 Argentina Fish 4.36 6.96
... ... ... ... ...
1425 Bangladesh Milk - inc. cheese 21.91 31.21
1426 Bangladesh Wheat and Wheat Products 17.47 3.33
1427 Bangladesh Rice 171.73 219.76
1428 Bangladesh Soybeans 0.61 0.27
1429 Bangladesh Nuts inc. Peanut Butter 0.72 1.27

1430 rows × 4 columns

3.

데이터프레임에는 몇 개의 행과 열이 있나요?

df.shape
(1430, 4)

4.

df의 각 열에 있는 데이터 유형은 무엇입니까?

df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1430 entries, 0 to 1429
Data columns (total 4 columns):
 #   Column         Non-Null Count  Dtype  
---  ------         --------------  -----  
 0   country        1430 non-null   object 
 1   food_category  1430 non-null   object 
 2   consumption    1430 non-null   float64
 3   co2_emmission  1430 non-null   float64
dtypes: float64(2), object(2)
memory usage: 44.8+ KB

5.

전체 데이터 세트의 평균 co2_emission은 무엇입니까?

df["co2_emmission"].mean()
74.383993006993

6.

데이터세트에는 몇 가지 종류의 음식이 있나요? 데이터 세트에는 몇 개의 국가가 포함되어 있나요?

print(f"There are {df['food_category'].nunique()} foods.")
print(f"There are {df['country'].nunique()} countries.")
There are 11 foods.
There are 130 countries.

7.

데이터 세트의 최대 ’co2_emmission’은 무엇이며, 이는 어느 식품 유형 및 국가에 속합니까?

df.iloc[df["co2_emmission"].idxmax()]
country          Argentina
food_category         Beef
consumption          55.48
co2_emmission         1712
Name: 2, dtype: object

8.

적어도 하나의 식품 유형에 대해 연간 1인당 1000kg CO2 이상을 생산하는 국가는 몇 군데입니까?

df.query("co2_emmission > 1000")
country food_category consumption co2_emmission
2 Argentina Beef 55.48 1712.00
13 Australia Beef 33.86 1044.85
57 USA Beef 36.24 1118.29
90 Brazil Beef 39.25 1211.17
123 Bermuda Beef 33.15 1022.94

9.

1인당 연간 쇠고기 소비량이 가장 적은 국가는 어디입니까?

(df.query("food_category == 'Beef'").sort_values(by="consumption").head(1))
country food_category consumption co2_emmission
1410 Liberia Beef 0.78 24.07

10.

1인당 연간 대두 소비량이 가장 많은 국가는 어디입니까?

(
    df.query("food_category == 'Soybeans'")
    .sort_values(by="consumption", ascending=False)
    .head(1)
)
country food_category consumption co2_emmission
1010 Taiwan. ROC Soybeans 16.95 7.63

11.

데이터 세트에 포함된 모든 육류 제품(돼지고기, 가금류, 생선, 양고기 및 염소, 쇠고기)의 총 배출량은 얼마입니까?

meat = ["Poultry", "Pork", "Fish", "Lamb & Goat", "Beef"]
df["co2_emmission"][df["food_category"].isin(meat)].sum()
74441.13

12.

데이터 세트에 있는 다른 모든(육류가 아닌) 제품의 총 배출량은 얼마입니까?

meat = ["Poultry", "Pork", "Fish", "Lamb & Goat", "Beef"]
df["co2_emmission"][~df["food_category"].isin(meat)].sum()
31927.98