老师关于project 1,2.1调取NaN那部分的内容,我有一下三个问题。
- print("order_number 1 count in orders table: ", orders[orders.order_number == 1].drop_duplicates().shape[0])
我的理解是你先indexing orders这个df里面order number那一列,去重order_number==1的boolean为true的数据,输出它去重的行数
那我可不可以直接orders[orders.order_number == 1].shape[0])?直接调出order number为1的数据看总共有多少行?它的运行结果和有drop_duplicates()是一样的。 - print("NaN count in days_since_prior_order column: ", orders[orders.days_since_prior_order.isnull()].shape[0])
如果写成orders[orders.days_since_prior_order== ‘NaN’].shape[0]) 输出结果是o; 如果orders.days_since_prior_order.isnull().shape[0]) 输出结果是82683(也就是total order number)
老师能不能解释一下为什么会输出的结果不一样吗? - print("user_id count in orders table: ", orders.user_id.drop_duplicates().shape[0])
我自己用indexing的方法写了orders[‘user_id’].drop_duplicates().shape[0])得到的也是5000.
第三个问题其实和第二个问题相同,我对什么时候df可以直接.column.function vs 什么时候要先indexing再.function有些混淆。
谢谢老师。