iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0
自我挑戰組

商業數據分析應用系列 第 8

[Day8] 利用duplicated和drop_duplicates篩選資料

  • 分享至 

  • xImage
  •  

計算不重複使用者數量

一開始有計算過不重複使用者,但那是包含#欄位的資料,因此再來一次XD。

df1[mask_5]['ride_id']

1354      2D4EA0D9064662D6
353057    651C959936BA3227
226720    EB83072244DF5183
107043    8994CCC830A3DDF1
341354    B6DE81A51970FF21
      
395103    7DC888EB586ED128
14867     9E7EB9668B2D6745
25921     53354C6AD261671C
391277    F16BC64D8530B976
20695     E50EBEC94B14C4B9
Name: ride_id, Length: 419215, dtype: object

##

df1[mask_5]['ride_id'].nunique()

##
Out[9]: 419199

得到不重複使用者419199筆;重複使用者16筆

Q: 這些不重複使用者,多是會員還是非會員?

df1[mask_5][df1[mask_5]['member_casual']=='member']['ride_id'].nunique() #不重複+是會員
Out[12]: 374672
df1[mask_5][df1[mask_5]['member_casual']=='casual']['ride_id'].nunique() #不重複+非會員
Out[13]: 44529

結果發現自己犯了低級錯誤XD 先篩了會員/非會員才計算不重複ID。
改用下面方式修正後,加總才是對的。參考了這篇文章,對於移除或留下duplicate資料有興趣的朋友可以看看~寫得很清楚^^。

test=df1[mask_5].drop_duplicates(subset='ride_id',inplace=False)
sum(test['member_casual']=='member') 
sum(test['member_casual']=='casual') 

##
Out[37]: 
1354      False
353057    False
226720    False
107043    False
341354    False
 
395103     True
14867      True
25921      True
391277     True
20695      True
Name: member_casual, Length: 419199, dtype: bool

Out[38]: 374670
Out[39]: 44529

重複使用者

16筆重複使用者,雖然在大量資料中算是少數,但是還是來看看。

duplicate=df1[mask_5][df1[mask_5].duplicated(subset='ride_id')]
print(duplicate.loc[:,'ride_id':'member_casual'])
##
         ride_id rideable_type  ...   end_lng member_casual
82829   9.21E+15   docked_bike  ...  -87.6145        member
358782  3.75E+15   docked_bike  ...  -87.6206        member
60279   1.01E+15   docked_bike  ...  -87.6363        member
109636  4.94E+15   docked_bike  ...  -87.6247        member
108620  2.40E+15   docked_bike  ...  -87.6309        member
251751  7.58E+15   docked_bike  ...   -87.626        member
166405  2.30E+15   docked_bike  ...  -87.6295        member
156431  2.39E+15   docked_bike  ...   -87.679        member
239464  2.90E+15   docked_bike  ...  -87.6343        member
136789  4.47E+15   docked_bike  ...  -87.6638        member
305971  4.67E+15   docked_bike  ...  -87.6411        member
317950  1.68E+15   docked_bike  ...   -87.648        member
218917  2.83E+15   docked_bike  ...  -87.6364        member
245752  4.56E+15   docked_bike  ...  -87.6455        member
344090  2.16E+15   docked_bike  ...  -87.6677        member
271268  4.49E+15   docked_bike  ...  -87.6417        member

[16 rows x 13 columns]

給忠實顧客們拍拍手XD

轉換率計算

找出原本非會員但後來變成會員的ID (ride_id Count >1)
延伸討論:非會員轉會員在三個月內的使用頻率如何?

昨天的設想原本是以上內容(還有上面的重複使用者),但想到這份資料並無法追蹤非會員資料,所以也無從得知究竟有哪些人是在借用後選擇加入會員的。如果這份資料有一些使用者的聯絡方式等資料或許就可以追蹤了!
但以上的轉換率計算,我想是在商業場景中蠻重要的參考標準。


明天想來觀察一周中哪天是最常被租借的?熱門時段又是哪些?(早上/中午/晚上)
早上就把今天的份完成了~非常開心! 可以放心去烤肉/images/emoticon/emoticon07.gif

中秋節快樂!


上一篇
[Day7] Groupby()的應用
下一篇
[Day9] 使用value_counts()計算指定欄位數量
系列文
商業數據分析應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言