如何删除值计数小于特定数字的列行?
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)]
具有相同的输出。
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)]
具有相同的输出。