考试报名
考试报名
考试内容
考试大纲
在线客服
返回顶部

备考刷题,请到

CDA认证小程序

假设您有两个Pandas DataFrame:df_sales 记录了产品销售额,df_returns 记录了产品退货信息。两个DataFrame都有'date'和'product_id'列。您希望计算每个产品每天的净销售额(销售额 - 退货额)。在进行合并(merge)操作时,如果某一天某个产品只有销售记录而没有退货记录(反之亦然),您希望该天的退货额(或销售额)被视为0。您应该选择哪种合并方式以及如何处理缺失值?
A. pd.merge(df_sales, df_returns, on=['date', 'product_id'], how='inner'),然后用0填充NA值。
B. pd.merge(df_sales, df_returns, on=['date', 'product_id'], how='outer'),然后用0填充NA值。
C. pd.merge(df_sales, df_returns, on=['date', 'product_id'], how='left'),然后用0填充NA值。
D. pd.merge(df_sales, df_returns, on=['date', 'product_id'], how='right'),然后用0填充NA值。
上一题
下一题
收藏
点赞
评论
题目解析
题目评论(0)

'inner' (内连接) 只会保留在两个DataFrame中都存在的键的组合,这意味着如果某产品某天只有销售或只有退货,该记录将被丢弃,不符合计算净销售额的要求。'left' (左连接) 会保留所有左侧DataFrame(df_sales)的记录。如果某天某个产品只有退货而没有销售,该记录将被丢弃。'right' (右连接) 则会保留所有右侧DataFrame(df_returns)的记录,丢弃只有销售的记录。'outer' (外连接) 会保留两个DataFrame中所有的键的组合。如果某条记录只存在于其中一个DataFrame,另一个DataFrame中对应的列会显示为NaN。这正是我们所需要的场景,因为它保留了所有的销售和退货记录。之后使用.fillna(0)可以将这些NaN值(代表没有发生的操作)替换为0,从而可以正确地计算净销售额。