我有一個資料框,在完成轉置后看起來像這樣:
step1 step2 step3 step4 ..... stepn-1 stepn
session_id
1 page_id page_id NA NA NA NA
2 page_id NA NA NA NA NA
3 page_id page_id page_id page_id page_id page_id
4 page_id page_id page_id NA NA NA
對于背景關系,這page_id是一些 url 子字串,這些步驟指示整個跟蹤網頁中的用戶路徑
有些人的步數出奇地大,可能有 1000 多頁,我想這相對于平均水平來說是非常罕見的
我想要做的是找到每個會話的平均步驟(非 NA 步驟)
因此,在上面的示例中,如果我們排除將定義為例外值的第 3 頁,則平均步長為 (2 1 4 3)/4 = 10/4
一旦我有了平均值,我就會知道我可以排除哪些行,以便表格變得更易于管理。
所以總的來說
找到平均步數(非 nas)并使用此數字洗掉包含超過平均行數的行
uj5u.com熱心網友回復:
您可以使用notna 計算非 NaN 的數量sum并獲得mean. 最后,dropna將此平均值用作閾值:
avg = df.notna().sum(axis=1).mean()
df.dropna(thresh=avg)
輸出:
step1 step2 step3 step4 stepn-1 stepn
session_id
3 page_id page_id page_id page_id page_id page_id
4 page_id page_id page_id NaN NaN NaN
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/340517.html
