熊猫:如何使 value_counts() 高于阈值

时间:2021-04-08 14:22:40

标签: python-3.x pandas dataframe

如何使 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).

有什么提示吗?谢谢

2 个答案:

答案 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_countsmap 的方法:

counts = df[col].value_counts(dropna=False)
df[df[col].map(counts)>3]