簡體   English   中英

根據遮罩在pandas數據框中刪除列

[英]drop columns in pandas dataframe based on mask

我在每個列中都有一個具有各種數量值的數據框。 我用另一個帖子中的以下代碼創建了一個掩碼,該掩碼告訴我每一列中有多少個值>我得到以下結果

count_year_mask = df_mth_return.notnull().sum()
results in series like this
AAPL US Equity     312
GOOGL US Equity    161
GOOG US Equity      45
MSFT US Equity     312
AMZN US Equity     248
FB US Equity        68

然后,我要刪除上述系列中df_mth_return中所有少於180的列。 我希望DF僅包含> 180個數字的列。 因此,GOOGL,GOOG和FB將被淘汰。 我嘗試了這段代碼,並收到以下錯誤

df_mth_return.drop(np.where(count_year_mask<180))
ValueError: Buffer has wrong number of dimensions (expected 1, got 3)

這似乎是一個簡單的面具,所以不確定我在做什么錯。 如果可以的話請幫忙

您可以使用loc過濾列:

df_mth_return.loc[:, count_year_mask>=180]

要么:

df_mth_return.loc[:, ~count_year_mask<180]

暫無
暫無

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

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