如何删除值计数小于特定数字的列行?

How to remove rows of columns whose value count is less than particular number?

df['Brand'].value_counts() 给出品牌列中每个值出现的列表。我想删除出现次数少于 6 的所有行。列品牌是字符串。

Table

您可以在下面进行此操作;

column = df['Brand'] > 6
valueCount = column.value_counts()

使用:

df = pd.DataFrame({'Brand':[1,2,3,3,3,3,3,3,3,3]})
df[df.apply(lambda x: df.value_counts()[x]>6)['Brand'].values]

输出:

一种更有效的方法,如果您的数据量很大:

temp = df.value_counts()>6
df[df['Brand'].isin(temp[temp].index.get_level_values(0).values)]

输出:

另一种方式:

df = pd.DataFrame({'Brand':[1,2,3,3,3,3,3,3,3,3]})
temp = df['Brand'].tolist()
df[df['Brand'].apply(lambda x: temp.count(x)>6)]

具有相同的输出。