根据掩码删除pandas数据帧中的列

时间:2018-01-21 19:05:33

标签: python pandas

我有一个数据框,每列中包含不同数量的值。我创建了一个掩码,告诉我每列中有多少值,其中包含来自其他帖子的以下代码>我得到以下结果

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)

这看起来像一个简单的面具,所以不确定我做错了什么。如果可以,请帮助

1 个答案:

答案 0 :(得分:0)

您可以使用loc来过滤列:

df_mth_return.loc[:, count_year_mask>=180]

或者:

df_mth_return.loc[:, ~count_year_mask<180]