基于掩码在 Pandas 数据帧中删除列。

4

我有一个数据框,每列中的值数量各不相同。我使用另一篇帖子中的以下代码创建了一个掩码,告诉我每列中有多少个值。结果如下:

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个回答

3
您可以使用 loc 过滤列:
df_mth_return.loc[:, count_year_mask>=180]

或者:

df_mth_return.loc[:, ~count_year_mask<180]

感谢您的帮助。谢谢。 - J Westwood

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接