通过值计数过滤数据帧
一直在尝试这一段时间,但没有得到任何地方。 请考虑下面的DF。通过值计数过滤数据帧
Id YearBuilt SalePrice Neighborhood
1 2003 208500 CollgCr
2 1976 181500 Veenker
3 2001 223500 CollgCr
4 1915 140000 Crawfor
5 2000 250000 NoRidge
6 1993 143000 Mitchel
7 2004 307000 Somerst
8 1973 200000 NWAmes
9 1931 129900 OldTown
10 1939 118000 BrkSide
11 1965 129500 Sawyer
12 2005 345000 NridgHt
13 1962 144000 Sawyer
14 2006 279500 CollgCr
15 1960 157000 NAmes
16 1929 132000 BrkSide
17 1970 149000 NAmes
我想将数据分组到社区和邻里是否的计数小于说10,它应该被放入一个组other
。我看到了其他答案,但无法解释它们。我曾尝试
house_df['newColumn'] = house_df['Neighborhood'].mask(house_df['Neighborhood'].count < 50, 'other')
也试过
house_df.groupby['Neighborhood'].filter(lambda x: x.count < 10)
但这并不工作。也试图groupby
邻里和应用过滤器,但没有去。请帮忙。
这是我所期待实现
Id YearBuilt SalePrice Neighborhood newColumn
1 2003 208500 CollgCr Collgcr
2 1976 181500 Veenker other
3 2001 223500 CollgCr CollgCr
4 1915 140000 Crawfor other
5 2000 250000 NoRidge NoRidge
6 1993 143000 Mitchel Mitchel
7 2004 307000 Somerst other
8 1973 200000 NWAmes NWAmes
使用value_counts
计数街区和map
用lambda
产生适当的分组的例子。
vc = df.Neighborhood.value_counts()
df = df.assign(
newColumn=df.Neighborhood.map(
lambda x: x if vc.at[x] > 1 else 'other'
)
)
这不是我要找的。如果邻居的数量少于10,我想把'邻居'放到'other'组中。换句话说,我想减少维数,并且使其他邻居组的邻居数小于10。 – Harj
@Harj这就是我做了什么。除了我用了少于2个,因为你没有提供足够的数据来显示它与10的样子。如果这仍然不是你想要的,考虑编辑你的问题,并明确你想要什么。 – piRSquared
我编辑了这个问题。谢谢 – Harj
请显示其他失败的尝试。 –
'house_df.groupby ['Neighborhood']。filter(lambda x:x.count Harj
请修改您的问题。这是相关信息 –