我在 pandas 数据框中的专栏(城市)之一如下所示:0 city11 city12 city23 city14 city55 city2...个别城市的出现:city3 6758city32 6400city1 4500city13 2440...我想删除出现次数少于 n 次的城市。
4 回答

MYYA
TA贡献1868条经验 获得超4个赞
我们可以做的transform
N=10 newdf=df[df.groupby('city')['city'].transform('count')>N].copy()

30秒到达战场
TA贡献1828条经验 获得超6个赞
根据你想要的,我会使用:
import pandas as pd
threshold=7
cities = ['city1' for _ in range(10)] + ['city2' for _ in range(5)]
df = pd.DataFrame(cities, columns=['city'])
df['freq'] = df.groupby('city')['city'].transform('count')
df = df[df['freq']>threshold]
保留原始df中的所有行
df = pd.DataFrame(df['city'].value_counts())
df = df[df['city']<threshold]
每个城市名称只会给你一行。

肥皂起泡泡
TA贡献1829条经验 获得超6个赞
我不完全了解您的数据框是如何组织的,但它应该很简单
df[df['unique count'] < n]
或df[df['unique count'] >= n]
(取决于你想要什么)
您可能不得不使用这段代码的语法,只是因为我不完全理解您的数据框,但这应该可以满足您的需要。
希望这可以帮助!!
添加回答
举报
0/150
提交
取消