如果一个国家满足下述两个条件之一,则认为该国是 大国 :
面积至少为 300 万平方公里(即,3000000 km2),或者
人口至少为 2500 万(即 25000000)
查询并报告 大国 的国家名称、人口和面积。
按 任意顺序 返回结果表。
方法一:
def is_bigcountry(world):
data = world[(world['area']>=3000000) | (world['population']>=25000000)][['name','population','area']]
return data
方法二:
def is_bigcountry(wrold):
data = world.loc[(world['area')>=3000000)|(world['population']>=25000000),['name','population','area']]]
return data
±------------±--------+
| Column Name | Type |
±------------±--------+
| product_id | int |
| low_fats | enum |
| recyclable | enum |
±------------±--------+
在 SQL 中,product_id 是这个表的主键。
low_fats 是枚举类型,取值为以下两种 (‘Y’, ‘N’),其中 ‘Y’ 表示该产品是低脂产品,‘N’ 表示不是低脂产品。
recyclable 是枚举类型,取值为以下两种 (‘Y’, ‘N’),其中 ‘Y’ 表示该产品可回收,而 ‘N’ 表示不可回收。
查找既是低脂又是可回收的产品编号。
返回结果 无顺序要求 。
方法一:
def find_products(products: pd.DataFrame) -> pd.DataFrame:
data = products[(products['low_fats']=='Y') & (products['recyclable']=='Y')][['product_id']]
return data
方法二:
def find_products(products: pd.DataFrame) -> pd.DataFrame:
data = products.loc[(products['low_fats']=='Y') & (products['recyclable']=='Y'),['product_id']]
return data
Customers 表:
±------------±--------+
| Column Name | Type |
±------------±--------+
| id | int |
| name | varchar |
±------------±--------+
在 SQL 中,id 是该表的主键。
该表的每一行都表示客户的 ID 和名称。
Orders 表:
±------------±-----+
| Column Name | Type |
±------------±-----+
| id | int |
| customerId | int |
±------------±-----+
在 SQL 中,id 是该表的主键。
customerId 是 Customers 表中 ID 的外键( Pandas 中的连接键)。
该表的每一行都表示订单的 ID 和订购该订单的客户的 ID。
找出所有从不点任何东西的顾客。
def find_customers(customers: pd.DataFrame, orders: pd.DataFrame) -> pd.DataFrame:
merge_data = pd.merge(customers,orders,left_on='id',right_on='customerId',how='left')
data = merge_data[merge_data['customerId'].isnull()][['name']].rename(columns={'name':'Customers'})
return data
pd.merge 是 Pandas 中用于合并数据的函数。它可以将两个数据框(DataFrames)按照指定的条件合并为一个新的数据框。下面是对 pd.merge 函数中的参数进行详细解释:
customers:这是一个 Pandas 数据框,其中包含顾客信息。它是作为合并操作的左侧数据框。
orders:这是另一个 Pandas 数据框,其中包含订单信息。它是作为合并操作的右侧数据框。
left_on:这是一个字符串或者字符串列表,指定左侧数据框(customers)中用于合并的列名。在这个例子中,我们使用了 ‘id’,表示我们要根据 customers 数据框中的 ‘id’ 列来进行合并。
right_on:这是一个字符串或者字符串列表,指定右侧数据框(orders)中用于合并的列名。在这个例子中,我们使用了 ‘customerId’,表示我们要根据 orders 数据框中的 ‘customerId’ 列来进行合并。
how:这是一个字符串,指定合并的方式。它可以取以下几种值:
‘inner’:执行内连接,保留两个数据框中共有的行。
‘outer’:执行外连接,保留两个数据框中的所有行,并将不匹配的部分用 NaN 填充。
‘left’:执行左连接,以左侧数据框(customers)为基准,保留所有左侧数据框的行,并将右侧数据框(orders)中不匹配的部分用 NaN 填充。
‘right’:执行右连接,以右侧数据框(orders)为基准,保留所有右侧数据框的行,并将左侧数据框(customers)中不匹配的部分用 NaN 填充。
在这个例子中,我们使用了 ‘left’ 连接,表示我们要以 customers 数据框为基准,保留所有的 customers 行,并将 orders 中不匹配的部分用 NaN 填充。这样,我们就得到了一个新的数据框 merged_data,其中包含了 customers 和 orders 数据框的信息合并在一起。