連結する際のラベルの指定

次のコードで空欄になっている行に入る適切な選択肢を 1 ~ 3 から選び、下記の設問に答えてください.

Q1:変数 df より、「X」ラベルの「Japan」列のデータを DataFrame 型で変数 X_Japan に代入してください

import numpy as np
import pandas as pd
from pandas import DataFrame

def make_df(idx, cols, seed):
np.random.seed(seed)
df = pd.DataFrame()
for col in cols:
df[col] = np.random.choice(range(1, 51), len(idx))

df.index = idx

return df

cols_1 = [“Japan”, “China”, “USA”]
cols_2 = [“Japan”, “China”, “USA”]

df_1 = make_df(range(1, 5), cols_1, 0)
df_2 = make_df(range(1, 5), cols_2, 1)

df = pd.concat([df_1, df_2], axis=1, keys=[“X”, “Y”])
print(df)

# Q1
X_Japan = ##########
print(X_Japan)

[Q1の選択肢]
1. df[“Japan”](keys=”X”)
2. df[“X”][“Japan”]
3. df[“X”, “Japan”]

連結する際のラベルの指定

次のコードで空欄になっている行に入る適切な選択肢を 1 ~ 3 から選び、下記の設問に答えてください.

Q1:変数 df より、「Y」ラベルの「China」列のデータを DataFrame 型で変数 Y_China に代入してください

import numpy as np
import pandas as pd
from pandas import DataFrame

def make_df(idx, cols, seed):
np.random.seed(seed)
df = pd.DataFrame()
for col in cols:
df[col] = np.random.choice(range(1, 51), len(idx))

df.index = idx

return df

cols_1 = [“Japan”, “China”, “USA”]
cols_2 = [“Japan”, “China”, “USA”]

df_1 = make_df(range(1, 5), cols_1, 0)
df_2 = make_df(range(1, 5), cols_2, 1)

df = pd.concat([df_1, df_2], axis=1, keys=[“X”, “Y”])
print(df)

# Q1
Y_China = ##########
print(Y_China)

[Q1の選択肢]
1. df[“Y”, “China”]
2. df[“China”].loc[“Y”]
3. df[“Y”][“China”]

内部結合の実装

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

Q1:「PRE」を Key として変数 df_1、df_2 を内部結合し変数 INNER に代入してください.

import numpy as np
import pandas as pd

dict_1 = {“PRE” : [“Tokyo”, “Osaka”, “Aichi”, “Fukuoka”, “Hokkaido”],
“PRE_CAPI” : [“Shinjuku”, “Osaka”, “Nagoya”, “Fukuoka”, “Sapporo”],
“POP_RANK” : [ 1, 3, 4, 9, 8]}
df_1 = pd.DataFrame(dict_1)

dict_2 = {“PRE” : [“Tokyo”, “Osaka”, “Aichi”, “Fukuoka”, “Hokkaido”],
“PRE_CAPI” : [“Shinjuku”, “Osaka”, “Nagoya”, “Fukuoka”, “Sapporo”],
“AREA_RANK” : [ 45, 46, 27, 29, 1]}
df_2 = pd.DataFrame(dict_2)

# Q1
INNER = ##########
print(INNER)

[Q1の選択肢]
1. pd.merge(df_1, df_2, on=”inner”, how=”PRE”)
2. pd.merge(df_1, df_2, on=”PRE”, how=”inner”)
3. pd.join(df_1, df_2, on=”inner”, how=”PRE”)
4. pd.join(df_1, df_2, on=”PRE”, how=”inner”)

内部結合の実装

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

Q1:「PRE」を Key として変数 df_1、df_2 を内部結合し変数 INNER に代入してください.

import numpy as np
import pandas as pd

dict_1 = {“PRE” : [“Tokyo”, “Osaka”, “Aichi”, “Fukuoka”, “Hokkaido”],
“PRE_CAPI” : [“Shinjuku”, “Osaka”, “Nagoya”, “Fukuoka”, “Sapporo”],
“POP_RANK” : [ 1, 3, 4, 9, 8]}
df_1 = pd.DataFrame(dict_1)

dict_2 = {“PRE” : [“Tokyo”, “Osaka”, “Aichi”, “Fukuoka”, “Hokkaido”],
“PRE_CAPI” : [“Shinjuku”, “Osaka”, “Nagoya”, “Fukuoka”, “Sapporo”],
“AREA_RANK” : [ 45, 46, 27, 29, 1]}
df_2 = pd.DataFrame(dict_2)

# Q1
INNER = ##########
print(INNER)

[Q1の選択肢]
1. pd.join(df_1, df_2, on=”PRE”, how=”inner”)
2. pd.join(df_1, df_2, on=”inner”, how=”PRE”)
3. pd.merge(df_1, df_2, on=”PRE”, how=”inner”)
4. pd.merge(df_1, df_2, on=”inner”, how=”PRE”)

外部結合の実装

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

Q1:「PRE」を Key として変数 df_1、df_2 を外部結合し変数 OUTER に代入してください.

import numpy as np
import pandas as pd

dict_1 = {“PRE” : [“Tokyo”, “Osaka”, “Aichi”, “Fukuoka”, “Hokkaido”],
“PRE_CAPI” : [“Shinjuku”, “Osaka”, “Nagoya”, “Fukuoka”, “Sapporo”],
“POP_RANK” : [ 1, 3, 4, 9, 8]}
df_1 = pd.DataFrame(dict_1)

dict_2 = {“PRE” : [“Tokyo”, “Osaka”, “Aichi”, “Fukuoka”, “Hokkaido”],
“PRE_CAPI” : [“Shinjuku”, “Osaka”, “Nagoya”, “Fukuoka”, “Sapporo”],
“AREA_RANK” : [ 45, 46, 27, 29, 1]}
df_2 = pd.DataFrame(dict_2)

# Q1
OUTER = ##########
print(OUTER)

[Q1の選択肢]
1. pd.merge(df_1, df_2, on=”PRE”, how=”outer”)
2. pd.merge(df_1, df_2, on=”PRE”, how=0)
3. pd.concat(df_1, df_2, on=”PRE”, how=”outer”)
4. pd.concat(df_1, df_2, on=”PRE”, how=0)

外部結合の実装

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

Q1:「PRE」を Key として変数 df_1、df_2 を外部結合し変数 OUTER に代入してください.

import numpy as np
import pandas as pd

dict_1 = {“PRE” : [“Tokyo”, “Osaka”, “Aichi”, “Fukuoka”, “Hokkaido”],
“PRE_CAPI” : [“Shinjuku”, “Osaka”, “Nagoya”, “Fukuoka”, “Sapporo”],
“POP_RANK” : [ 1, 3, 4, 9, 8]}
df_1 = pd.DataFrame(dict_1)

dict_2 = {“PRE” : [“Tokyo”, “Osaka”, “Aichi”, “Fukuoka”, “Hokkaido”],
“PRE_CAPI” : [“Shinjuku”, “Osaka”, “Nagoya”, “Fukuoka”, “Sapporo”],
“AREA_RANK” : [ 45, 46, 27, 29, 1]}
df_2 = pd.DataFrame(dict_2)

# Q1
OUTER = ##########
print(OUTER)

[Q1の選択肢]
1. pd.concat(df_1, df_2, on=”PRE”, how=”outer”)
2. pd.concat(df_1, df_2, on=”PRE”, how=0)
3. pd.merge(df_1, df_2, on=”PRE”, how=”outer”)
4. pd.merge(df_1, df_2, on=”PRE”, how=0)

異なる列を Key として結合

次のコードで空欄になっている行に入る適切な選択肢を 1 ~ 3 から選び、下記の設問に答えてください.

Q1:変数 df_room の 「owner_name」、df_owner の「name」を Key として、それぞれの DataFrame を内部結合し、df_client に代入してください.

import pandas as pd
df_room = pd.DataFrame([[201, 4, “Yamakawa”],
[202, 2, “Akiyama”],
[301, 3, “Yamakawa”],
[505, 6, “Mori”]],
columns=[“room_num”, “tenant_num”, “owner_name”])
df_owner = pd.DataFrame([[38, “Yamakawa”],
[22, “Nakamura”],
[62, “Mori”],
[88, “Akiyama”]],
columns=[“age”, “name”])
# Q1
df_client = ##########
print(df_client)

[Q1の選択肢]
1. pd.merge(df_room, df_orner,”owner_name”, “name”, how=”inner”)
2. pd.merge(df_room, df_orner, left_on=”owner_name”, right_on=”name”, how=”inner”)
3. pd.merge(df_room, df_orner, keys=[“owner_name”, right_on=”name”], how=”inner”)

異なる列を Key として結合

次のコードで空欄になっている行に入る適切な選択肢を 1 ~ 3 から選び、下記の設問に答えてください.

Q1:以下の行列が得られるように、変数 df_room 、df_owner を結合してください.

####################
room_num tenant_num owner_name age
0 201 4 Yamakawa 38
1 301 3 Yamakawa 38
2 202 2 Akiyama 88
3 505 6 Mori 62
####################

import pandas as pd
df_room = pd.DataFrame([[201, 4, “Yamakawa”],
[202, 2, “Akiyama”],
[301, 3, “Yamakawa”],
[505, 6, “Mori”]],
columns=[“room_num”, “tenant_num”, “owner_name”])
df_owner = pd.DataFrame([[38, “Yamakawa”],
[22, “Nakamura”],
[62, “Mori”],
[88, “Akiyama”]],
columns=[“age”, “name”])
# Q1
df_client = ##########
print(df_client)

[Q1の選択肢]
1. pd.merge(df_room, df_orner,”owner_name”, “name”, how=”inner”)
2. pd.merge(df_room, df_orner, left_on=”owner_name”, right_on=”name”, how=”inner”).drop(columns=”name”)
3. pd.merge(df_room, df_orner, keys=[“owner_name”, right_on=”name”], how=”inner”).drop(columns=”name”)

異なる列を Key として結合

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

Q1:以下の行列が得られるように、変数 df_room 、df_owner を結合してください.

####################
room_num tenant_num owner_name age
0 201 4 Yamakawa 38
1 301 3 Yamakawa 38
2 202 2 Akiyama 88
3 505 6 Mori 62
####################

import pandas as pd
df_room = pd.DataFrame([[201, 4, “Yamakawa”],
[202, 2, “Akiyama”],
[301, 3, “Yamakawa”],
[505, 6, “Mori”]],
columns=[“room_num”, “tenant_num”, “owner_name”])
df_owner = pd.DataFrame([[38, “Yamakawa”],
[22, “Nakamura”],
[62, “Mori”],
[88, “Akiyama”]],
columns=[“age”, “name”])
# Q1
df_client = ##########
print(df_client)

[Q1の選択肢]
1. pd.merge(df_room, df_orner, left_on=”name”, right_on=”owner_name”, how=”inner”)
2. pd.merge(df_room, df_orner, left_on=”owner_name”, right_on=”name”, how=”inner”)
3. pd.merge(df_room, df_orner, left_on=”name”, right_on=”owner_name”, how=”outer”)
4. pd.merge(df_room, df_orner, left_on=”owner_name”, right_on=”name”, how=”outer”)

異なるサイズの DataFrame の連結 – MultiIndex

次のコードで空欄になっている行に入る適切な選択肢を 1 ~ 3 から選び、下記の設問に答えてください.

Q1:変数 df_1 と df_2 を横方向に結合し、Key に「X」、「Y」を指定することで MultiIndex にしてください.

import numpy as np
import pandas as pd
from pandas import DataFrame

def make_df(idx, cols, seed):
np.random.seed(seed)
df = pd.DataFrame()
for col in cols:
df[col] = np.random.choice(range(1, 51), len(idx))

df.index = idx

return df

cols_1 = [“Japan”, “China”, “USA”]
cols_2 = [“Japan”, “China”, “USA”]

df_1 = make_df(range(1, 5), cols_1, 0)
df_2 = make_df(range(1, 5), cols_2, 1)

# Q1
df = ##########
print(df)

[Q1の選択肢]
1. pd.concat([df_1, df_2], axis=1, [“X”, “Y”])
2. pd.concat([df_1, df_2], axis=1, key=[“X”, “Y”])
3. pd.concat([df_1, df_2], axis=1, keys=[“X”, “Y”])