簡體   English   中英

根據.sum()總數過濾熊貓系列

[英]Filter Pandas series based on .sum() totals

我的數據包含每位用戶一行,然后許多列基於與特定產品類別的互動而填充為10

我正在運行一些相關性分析,我想刪除不太重要的類別以使分析更易於閱讀,我在數據.sum()使用了.sum()來查看與大多數內容交互的類別,但是現在如何僅對此集合運行相關性?

這是我的.sum()的輸出樣本:

shoes_and_flats                                                                                           37
nightwear_and_slippers                                                                                    61
shorts_and_shorts                                                                                         23
accessories_and_fragrance                                                                                 25
jackets_and_coats_and_wool                                                                                12
dresses_and_skirts_and_sleeveless_dresses                                                                 35
swimwear_and_bikinis                                                                                      49
dresses_and_skirts_and_floral_dresses                                                                      7
jackets_and_coats_and_harrington_jackets                                                                  18
dresses_and_skirts_and_tunic_dresses                                                                       8
sports_performance_tops_and_vests                                                                          4
jeans_and_bootcut_jeans                                                                                    2
nightwear_and_nightwear                                                                                    1

通過做...創建

totals = df.sum()

我決定要刪除互動次數少於50的類別,因此我使用了... totals = totals[1: -1].sort_values() > 50

但這會返回所有類別,無論其TrueFalse值如何。

我的最終目標是在數據上使用.corr() ,如何運行此函數,並且僅返回類別具有超過50個交互的網格?

您要過濾數據框中的列。 你是正確的軌道上的TrueFalse的結果,你只需要使用它作為一個過濾器

假設數據在一個名為df的數據幀中,這將僅返回您想要的列:

totals = df.sum()
df[totals[totals > 50].index]

我相信您可以使用:

totals = totals[totals > 50]

編輯:上面接受的答案的語法對我不起作用,所以以防萬一這發生在別人身上,這是我發現起作用的

totals = df.sum()
totals = totals[totals > 50]
df_more_than_50 = df.filter(totals.index))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM