ピボットテーブルの作成、行列の変換

下記の設問に対する答えとして相応しものを選択肢から選び、次のコードの空欄(##########)を埋めてください.

変数 df を下記の並列へ変換してください.
####################
C
A
101 301
102 302
103 303
####################

import pandas as pd

df = pd.DataFrame({“A” : [101, 102, 103],
“B” : [201, 202, 203],
“C” : [301, 302, 303]}, index=[“a”, “b”, “c”])

##########

[選択肢]
1. df.pivot(index=”A”, values=”C”)
2. df.pivot_table(index=”A”, values=”C”)
3. df.pivot(values=[“A”, “C”])
4. df.pivot_table(values=[“A”, “C”])

ピボットテーブルの作成、行列の変換

下記の設問に対する答えとして相応しものを選択肢から選び、次のコードの空欄(##########)を埋めてください.

変数 df を下記の並列へ変換してください.
####################
C
A
101 301
102 302
103 303
####################

import pandas as pd

df = pd.DataFrame({“A” : [101, 102, 103],
“B” : [201, 202, 203],
“C” : [301, 302, 303]}, index=[“a”, “b”, “c”])

##########

[選択肢]
1. df.pivot(index=”A”, values=”C”)
2. df.pivot_table(index=”A”, values=”C”)
3. df.pivot(values=[“A”, “C”])
4. df.pivot_table(values=[“A”, “C”])

ピボットテーブルの作成、行列の変換

下記の設問に対する答えとして相応しものを選択肢から選び、次のコードの空欄(##########)を埋めてください.

変数 df を下記の並列へ変換してください.
####################
C
A
101 301
102 302
103 303
####################

import pandas as pd

df = pd.DataFrame({“A” : [101, 102, 103],
“B” : [201, 202, 203],
“C” : [301, 302, 303]}, index=[“a”, “b”, “c”])

##########

[選択肢]
1. df.pivot(index=”A”, values=”C”)
2. df.pivot_table(index=”A”, values=”C”)
3. df.pivot(values=[“A”, “C”])
4. df.pivot_table(values=[“A”, “C”])

ピボットテーブルの作成、行列の変換

下記の設問に対する答えとして相応しものを選択肢から選び、次のコードの空欄(##########)を埋めてください.

変数 df を下記のような並列へ変換してください.
(※ 答えは 2 行になります.)

########## 配列 ##########
B
Name cutting_A
a (-0.00323, 1.076] 0
(1.076, 2.153] 4
b (1.076, 2.153] 2
(2.153, 3.229] 5
c (-0.00323, 1.076] 1
(1.076, 2.153] 3
##########################

np.random.seed(0)
df = pd.DataFrame({“Name” : [“a”, “c”, “b”, “c”, “a”, “b”],
“A” : np.random.rand(6)*np.arange(0, 6, 1),
“B” : np.arange(0, 6, 1)})

print(df)
# 出力
####################
# Name A B
# 0 a 0.000000 0
# 1 c 0.715189 1
# 2 b 1.205527 2
# 3 c 1.634650 3
# 4 a 1.694619 4
# 5 b 3.229471 5
####################

# 答えは 2 行です
##########
##########

[選択肢]
1. df[“cutting_A”] = pd.cut(df.A, 3)
df.reset_index().pivot_table(index=”Name”, values=[cutting_A, “B”])

2. df[“cutting_A”] = pd.cut(df.A, 5)
df.reset_index().pivot_table(index=[“Name”, “cutting_A”], values=”B”)

3. df[“cutting_A”] = pd.cut(df.A, 3)
df.reset_index().pivot_table(index=[“A”, “cutting_A”], values=”B”)

4. df[“cutting_A”] = pd.cut(df.A, 5)
df.reset_index().pivot_table(index=”Name”, values=[cutting_A, “B”])

ピボットテーブルの作成、行列の変換

下記の設問に対する答えとして相応しものを選択肢から選び、次のコードの空欄(##########)を埋めてください.

変数 df を下記のような並列へ変換してください.
(※ 答えは 2 行になります.)

########## 配列 ##########
# B
# Name cutting_A
# a (-0.00323, 1.076] 0
# (1.076, 2.153] 4
# b (1.076, 2.153] 2
# (2.153, 3.229] 5
# c (-0.00323, 1.076] 1
# (1.076, 2.153] 3
##########################

np.random.seed(0)
np.random.seed(0)
df = pd.DataFrame({“Name” : [“a”, “c”, “b”, “c”, “a”, “b”],
“A” : np.random.rand(6)*np.arange(0, 6, 1),
“C” : np.arange(1, 7, 1)})

print(df)
# 出力
####################
# Name A C
# 0 a 0.000000 1
# 1 c 0.715189 2
# 2 b 1.205527 3
# 3 c 1.634650 4
# 4 a 1.694619 5
# 5 b 3.229471 6
####################

# 答えは 2 行です
##########
##########

[選択肢]
1. df[“cutting_C”] = pd.cut(df.C, 3)
df.reset_index().pivot_table(index=”Name”, values=[“cutting_C”, “A”])

2. df[“cutting_C”] = pd.cut(df.C, [0, 2, 4, 6])
df.reset_index().pivot_table(index=”Name”, values=[“cutting_C”, “A”])

3. df[“cutting_C”] = pd.cut(df.C, 3)
df.reset_index().pivot_table(index=[“Name”, “cutting_C”], values=”A”)

4. df[“cutting_C”] = pd.cut(df.C, [0, 2, 4, 6])
df.reset_index().pivot_table(index=[“Name”, “cutting_C”], values=”A”)

ピボットテーブル化と逆変換

下記の設問に対する答えとして相応しものを選択肢から選び、次のコードの空欄(##########)を埋めてください.

変数 df を以下に示す配列へ Tidy Data(整然データ)化してください.

########## 配列 ##########
# A B variable value
# 0 101 201 C 301
# 1 102 202 C 302
# 2 103 203 C 303
#########################

import pandas as pd

df = pd.DataFrame({“A” : [101, 102, 103],
“B” : [201, 202, 203],
“C” : [301, 302, 303]}, index=[“a”, “b”, “c”])

converted_df = ##########

[選択肢]
1. df.reset_index().melt(id_vars=[“index”], value_vars=[“A”, “B”, “C”])
2. df.reset_index().melt(id_vars=[“A”, “B”], value_vars=[“C”])
3. df.reset_index().melt(id_vars=[“A”, “B”])
4. df.reset_index().melt(id_vars=[“A”, “B”], value_vars=[“index”, “C”])

ピボットテーブル化と逆変換

下記の設問に対する答えとして相応しものを選択肢から選び、次のコードの空欄(##########)を埋めてください.

変数 df を以下に示す配列へ Tidy Data(整然データ)化してください.

########## 配列 ##########
# index variable value
# 0 a A 101
# 1 b A 102
# 2 c A 103
# 3 a B 201
# 4 b B 202
# 5 c B 203
# 6 a C 301
# 7 b C 302
# 8 c C 303
#########################

import pandas as pd

df = pd.DataFrame({“A” : [101, 102, 103],
“B” : [201, 202, 203],
“C” : [301, 302, 303]}, index=[“a”, “b”, “c”])

converted_df = ##########

[選択肢]
1. df.reset_index().melt(id_vars=[“index”], value_vars=[“A”, “B”, “C”])
2. df.reset_index().melt(id_vars=[“index”], value_vars=[“A”, “B”])
3. df.reset_index().melt(id_vars=[“A”, “B”, “C”])
4. df.reset_index().melt(id_vars=[“A”, “B”, “C”], value_vars=[“index”])

ピボットテーブル化と逆変換

下記の設問に対する答えとして相応しものを選択肢から選び、次のコードの空欄(##########)を埋めてください.

変数 df を以下に示す配列へ Tidy Data(整然データ)化してください.

########## 配列 ##########
# index variable value
# 0 a A 101
# 1 b A 102
# 2 c A 103
# 3 a B 201
# 4 b B 202
# 5 c B 203
# 6 a C 301
# 7 b C 302
# 8 c C 303
#########################

import pandas as pd

df = pd.DataFrame({“A” : [101, 102, 103],
“B” : [201, 202, 203],
“C” : [301, 302, 303]}, index=[“a”, “b”, “c”])

converted_df = ##########

[選択肢]
1. df.melt(id_vars=[“index”])
2. df.melt(id_vars=[“index”], value_vars=[“B”])
3. df.reset_index().melt(id_vars=[“index”])
4. df.reset_index().melt(id_vars=[“index”], value_vars=[“B”])

ビン詰め

下記の設問に対する答えとして相応しものを選択肢から選び、次のコードの空欄(##########)を埋めてください.

Q1:各ビンに含まれる要素の項数が均等になるように、変数 df の “Weight” 列を 5 ビン詰めしてください.また、ビン名には bin_labels を指定してください.
Q2:Q1 で得られた Category の各ビンごとのデータの個数をカウントしてください.

import pandas as pd
import numpy as np

df = pd.DataFrame({“Height” : np.arange(155, 185, 3),
“Weight” : np.arange(45, 85, 4),
“Sex” : [“Female”, “Male”, “Male”, “Female”, “Female”, “FeMale”, “Female”, “Male”, “Male”, “Male”],
“School Year” : [1, 1, 2, 4, 3, 4, 5, 5, 6, 6]})
measure_weight = [40, 50, 60, 70, 80, 90]
bin_labels = [“Thin”, “Near Thin”, “Mean”, “Near Fat”, “Fat”]

cutting_weight = ##########

print(##########)

[Q1 選択肢]
1. df.Weight.cut(measure_weight, labels=bin_labels)
2. df.Weight.qcut(df.Weight, 5, labels=bin_labels)
3. pd.cut(df.Weight, measure_weight, labels=bin_labels)
4. pd.qcut(df.Weight, 5, labels=bin_labels)

[Q2 選択肢]
1. cutting_weight.sum()
2. pd.sum(cutting_weight)
3. cutting_weight.value_counts()
4. pd.value_counts(cutting_weight)

ビン詰め

下記の設問に対する答えとして相応しものを選択肢から選び、次のコードの空欄(##########)を埋めてください.

Q1:変数 measure_weight を用いて、 変数 df の “Weight” 列をビン詰めしてください.また、ビン名には bin_labels を指定してください.
Q2:Q1 で得られた Category の各ビンごとのデータの個数をカウントしてください.

import pandas as pd
import numpy as np

df = pd.DataFrame({“Height” : np.arange(155, 185, 3),
“Weight” : np.arange(45, 85, 4),
“Sex” : [“Female”, “Male”, “Male”, “Female”, “Female”, “FeMale”, “Female”, “Male”, “Male”, “Male”],
“School Year” : [1, 1, 2, 4, 3, 4, 5, 5, 6, 6]})
measure_weight = [40, 50, 60, 70, 80, 90]
bin_labels = [“Thin”, “Near Thin”, “Mean”, “Near Fat”, “Fat”]

cutting_weight = ##########

print(##########)

[Q1 選択肢]
1. df.Weight.cut(measure_weight, labels=bin_labels)
2. df.Weight.qcut(df.Weight, measure_weight, labels=bin_labels)
3. pd.cut(df.Weight, measure_weight, labels=bin_labels)
4. pd.qcut(df.Weight, measure_weight, labels=bin_labels)

[Q2 選択肢]
1. cutting_weight.value_counts()
2. pd.value_counts(cutting_weight)
3. cutting_weight.sum()
4. pd.sum(cutting_weight)