如何使 value_counts 高于阈值?我试过了
df[df[col].value_counts(dropna=False) > 3]
获得大于 3 的所有计数,但我得到了
IndexingError: Unalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match).
有什么提示吗?谢谢
答案 0 :(得分:3)
尝试使用 isin
并与您原来的 value_counts
链接
out = df[df.col.isin(df[col].value_counts(dropna=False).loc[lambda x : x>3].index)].copy()
也让我们试试filter
out = df.groupby(col).filter(lambda x : len(x)>3)
答案 1 :(得分:2)
试试:
df[df.groupby(col)[col].transform('size')>3]
或使用value_counts
:
counts = df[col].value_counts(dropna=False)
valids = counts[counts>3].index
df[df[col].isin(valids)]
另一种使用 value_counts
和 map
的方法:
counts = df[col].value_counts(dropna=False)
df[df[col].map(counts)>3]