# Your answer here.판다와의 기본적인 랭글링

토마스 보젠, 2020년 9월
이 연습은 8장을 보완합니다.
연습
1.
이 연습 세트에서는 Kasia Kulma가 편집하고 R의 Tidy Tuesday 프로젝트에 기여한 마지막 연습 세트에서 살펴본 다양한 음식의 소비 및 탄소 발자국 데이터 세트를 다시 살펴보겠습니다.
’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
# Your answer here.3.
모든 식품 카테고리를 통틀어 연간 1인당 식품을 가장 많이 소비하는 국가는 어디입니까?
# Your answer here.4.
위 국가의 총 소비량에 가장 큰 기여를 하는 식품 카테고리는 무엇입니까?
# Your answer here.5.
1인당 연간 kg C02를 가장 많이 생산하는 국가는 어디입니까?
# Your answer here.6.
위 국가의 C02 배출량에 가장 큰 영향을 미치는 식품 카테고리는 무엇입니까?
# Your answer here.7.
모든 국가에서 연간 1인당 C02를 가장 많이 생산하는 식품 카테고리는 무엇입니까?
# Your answer here.8.
모든 국가에서 1인당 연간 가장 많이 소비되는 식품 카테고리는 무엇입니까? 모든 국가에서 가장 적게 소비되는 식품 카테고리는 무엇입니까?
# Your answer here.9.
‘food_category’ 열을 기준으로 피벗하여 데이터세트를 넓게 만듭니다. 여러 수준의 열이 있는 “다중 인덱스” 데이터 프레임이 생성됩니다.
# Your answer here.10.
이제 데이터 세트가 광범위해졌으므로 위의 질문 5와 동일한 질문인 “연간 1인당 kg C02를 가장 많이 생산하는 국가는 어디입니까?”에 답해 보시기 바랍니다. 특히, 동일한 데이터 분석 질문에 답하는 방식은 데이터 형식(가로 vs 세로)에 따라 달라진다는 점을 알아두셨으면 합니다. 어떤 옵션을 선호하는지에 대한 자신만의 의견을 형성할 수 있습니다. 저는 긴 데이터를 선호합니다(많은 시각화 라이브러리가 긴 데이터에서도 가장 잘 작동한다는 점을 기억하세요. 이에 대한 자세한 내용은 DSCI 531에서 확인하세요). 힌트: 이전에 본 것과 동일한 구문 df['co2_emmission']을 사용하여 다중 인덱스 열의 외부 레이어를 인덱싱할 수 있습니다. 내부 인덱스에 액세스하려면 튜플 df[("consumption", "Beef")]를 사용해야 합니다. 9장에서 다중 인덱스(“계층적 인덱스”라고도 함)에 대해 자세히 알아보세요.
# Your answer here.솔루션
1.
이 연습 세트에서는 Kasia Kulma가 편집하고 R의 Tidy Tuesday 프로젝트에 기여한 마지막 연습 세트에서 살펴본 다양한 음식의 소비 및 탄소 발자국 데이터 세트를 다시 살펴보겠습니다.
’pd’라는 별칭을 사용하여 팬더를 가져오는 것부터 시작해 보겠습니다.
import pandas as pd2.
참고로 데이터세트에는 다음과 같은 열이 있습니다.
| 열 | 설명 |
|---|---|
| 국가 | 국가명 |
| 음식_카테고리 | 식품 카테고리 |
| 소비 | 소비량(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.
모든 식품 카테고리를 통틀어 연간 1인당 식품을 가장 많이 소비하는 국가는 어디입니까?
df.groupby("country").sum().sort_values(by="consumption").tail(1)| consumption | co2_emmission | |
|---|---|---|
| country | ||
| Finland | 639.79 | 1464.63 |
4.
위 국가의 총 소비량에 가장 큰 기여를 하는 식품 카테고리는 무엇입니까?
df.query("country == 'Finland'").sort_values(by="consumption").tail(1)| country | food_category | consumption | co2_emmission | |
|---|---|---|---|---|
| 149 | Finland | Milk - inc. cheese | 430.76 | 613.57 |
5.
1인당 연간 kg C02를 가장 많이 생산하는 국가는 어디입니까?
df.groupby("country").sum().sort_values(by="co2_emmission").tail(1)| consumption | co2_emmission | |
|---|---|---|
| country | ||
| Argentina | 429.41 | 2172.4 |
6.
위 국가의 C02 배출량에 가장 큰 영향을 미치는 식품 카테고리는 무엇입니까?
df.query("country == 'Argentina'").sort_values(by="co2_emmission").tail(1)| country | food_category | consumption | co2_emmission | |
|---|---|---|---|---|
| 2 | Argentina | Beef | 55.48 | 1712.0 |
7.
모든 국가에서 연간 1인당 C02를 가장 많이 생산하는 식품 카테고리는 무엇입니까?
df.groupby("food_category").sum().sort_values(by="co2_emmission", ascending=False)| consumption | co2_emmission | |
|---|---|---|
| food_category | ||
| Beef | 1576.04 | 48633.26 |
| Milk - inc. cheese | 16350.71 | 23290.00 |
| Lamb & Goat | 338.02 | 11837.38 |
| Pork | 2096.08 | 7419.11 |
| Rice | 3818.77 | 4886.91 |
| Fish | 2247.32 | 3588.22 |
| Poultry | 2758.50 | 2963.16 |
| Wheat and Wheat Products | 9301.44 | 1773.78 |
| Eggs | 1061.29 | 974.95 |
| Nuts inc. Peanut Butter | 537.84 | 951.99 |
| Soybeans | 111.87 | 50.35 |
8.
모든 국가에서 1인당 연간 가장 많이 소비되는 식품 카테고리는 무엇입니까? 모든 국가에서 가장 적게 소비되는 식품 카테고리는 무엇입니까?
print("Most consumption:")
print(
df.groupby("food_category")
.sum()
.sort_values(by="consumption", ascending=False)
.head(1)
)
print("")
print("Least consumption:")
print(
df.groupby("food_category")
.sum()
.sort_values(by="consumption", ascending=False)
.tail(1)
)Most consumption:
consumption co2_emmission
food_category
Milk - inc. cheese 16350.71 23290.0
Least consumption:
consumption co2_emmission
food_category
Soybeans 111.87 50.35
9.
‘food_category’ 열을 기준으로 피벗하여 데이터세트를 넓게 만듭니다. 여러 수준의 열이 있는 “다중 인덱스” 데이터 프레임이 생성됩니다.
df = df.pivot(index="country", columns="food_category")
df| consumption | ... | co2_emmission | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| food_category | Beef | Eggs | Fish | Lamb & Goat | Milk - inc. cheese | Nuts inc. Peanut Butter | Pork | Poultry | Rice | Soybeans | ... | Eggs | Fish | Lamb & Goat | Milk - inc. cheese | Nuts inc. Peanut Butter | Pork | Poultry | Rice | Soybeans | Wheat and Wheat Products |
| country | |||||||||||||||||||||
| Albania | 22.50 | 12.45 | 3.85 | 15.32 | 303.72 | 4.36 | 10.88 | 13.23 | 7.78 | 0.00 | ... | 11.44 | 6.15 | 536.50 | 432.62 | 7.72 | 38.51 | 14.21 | 9.96 | 0.00 | 26.44 |
| Algeria | 5.60 | 8.06 | 3.74 | 7.69 | 141.53 | 2.08 | 0.00 | 7.42 | 2.97 | 0.00 | ... | 7.40 | 5.97 | 269.30 | 201.60 | 3.68 | 0.00 | 7.97 | 3.80 | 0.00 | 35.36 |
| Angola | 8.42 | 1.11 | 15.24 | 1.08 | 12.30 | 2.26 | 8.89 | 17.33 | 8.12 | 0.52 | ... | 1.02 | 24.33 | 37.82 | 17.52 | 4.00 | 31.47 | 18.62 | 10.39 | 0.23 | 7.77 |
| Argentina | 55.48 | 11.39 | 4.36 | 1.56 | 195.08 | 0.49 | 10.51 | 38.66 | 8.77 | 0.00 | ... | 10.46 | 6.96 | 54.63 | 277.87 | 0.87 | 37.20 | 41.53 | 11.22 | 0.00 | 19.66 |
| Armenia | 19.66 | 11.69 | 4.36 | 3.02 | 209.03 | 2.55 | 9.67 | 13.35 | 3.18 | 0.00 | ... | 10.74 | 6.96 | 105.76 | 297.74 | 4.51 | 34.23 | 14.34 | 4.07 | 0.00 | 24.91 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| Uruguay | 29.10 | 13.14 | 6.53 | 8.23 | 210.54 | 0.95 | 16.84 | 27.45 | 11.50 | 0.01 | ... | 12.07 | 10.43 | 288.21 | 299.89 | 1.68 | 59.61 | 29.49 | 14.72 | 0.00 | 20.85 |
| Venezuela | 25.89 | 5.63 | 8.34 | 0.32 | 117.79 | 0.35 | 7.23 | 39.28 | 23.39 | 0.00 | ... | 5.17 | 13.32 | 11.21 | 167.78 | 0.62 | 25.59 | 42.19 | 29.93 | 0.00 | 9.38 |
| Vietnam | 7.44 | 3.84 | 26.52 | 0.14 | 16.36 | 6.28 | 35.00 | 12.36 | 144.56 | 5.75 | ... | 3.53 | 42.34 | 4.90 | 23.30 | 11.12 | 123.88 | 13.28 | 184.99 | 2.59 | 2.00 |
| Zambia | 4.76 | 3.32 | 6.20 | 0.68 | 9.71 | 5.04 | 1.66 | 3.29 | 3.05 | 7.30 | ... | 3.05 | 9.90 | 23.81 | 13.83 | 8.92 | 5.88 | 3.53 | 3.90 | 3.29 | 2.31 |
| Zimbabwe | 7.37 | 1.75 | 2.80 | 0.96 | 31.90 | 2.22 | 2.65 | 4.97 | 10.09 | 0.54 | ... | 1.61 | 4.47 | 33.62 | 45.44 | 3.93 | 9.38 | 5.34 | 12.91 | 0.24 | 5.97 |
130 rows × 22 columns
10.
이제 데이터 세트가 광범위해졌으므로 위의 질문 5와 동일한 질문인 “연간 1인당 kg C02를 가장 많이 생산하는 국가는 어디입니까?”에 답해 보시기 바랍니다. 특히, 동일한 데이터 분석 질문에 답하는 방식은 데이터 형식(가로 vs 세로)에 따라 달라진다는 점을 알아두셨으면 합니다. 어떤 옵션을 선호하는지에 대한 자신만의 의견을 형성할 수 있습니다. 저는 긴 데이터를 선호합니다(많은 시각화 라이브러리가 긴 데이터에서도 가장 잘 작동한다는 점을 기억하세요. 이에 대한 자세한 내용은 DSCI 531에서 확인하세요). 힌트: 이전에 본 것과 동일한 구문 df['co2_emmission']을 사용하여 다중 인덱스 열의 외부 레이어를 인덱싱할 수 있습니다. 내부 인덱스에 액세스하려면 튜플 df[("consumption", "Beef")]를 사용해야 합니다. 9장에서 다중 인덱스(“계층적 인덱스”라고도 함)에 대해 자세히 알아보세요.
df["consumption"].sum(axis=1).sort_values().tail(1)country
Finland 639.79
dtype: float64