按值计数过滤数据框

3

我已经尝试了一段时间,但没有任何进展。 请考虑以下数据框:

    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个,则应将其放入其他组中。我已经看到了其他答案,但无法解释它们。我已经尝试过。

house_df['newColumn'] = house_df['Neighborhood'].mask(house_df['Neighborhood'].count < 50, 'other')

也尝试过

house_df.groupby['Neighborhood'].filter(lambda x: x.count < 10)

但其实这种方法不起作用。我也尝试过按区域分组并应用筛选器,但都没用。请帮忙解决。
这是我想要实现的一个例子。
 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

请展示其他失败的尝试。 - Mad Physicist
house_df.groupby['Neighborhood'].filter(lambda x: x.count < 10) - Harj
请编辑您的问题。那是相关信息。 - Mad Physicist
1个回答

3
使用value_counts计算街区数量,并使用lambda函数与map方法结合产生适当的分组。
vc = df.Neighborhood.value_counts()

df = df.assign(
    newColumn=df.Neighborhood.map(
        lambda x: x if vc.at[x] > 1 else 'other'
    )
)

这不是我正在寻找的。如果附近的数量少于10个,则我想将“邻域”放入“其他”组中。换句话说,我想减少维度并将出现少于10次的邻域放入“其他”组。 - Harj
@Harj,这就是我所做的。除了我使用的是小于2,因为你没有提供足够的数据来展示它在10时会是什么样子。如果这还不是你想要的,请考虑编辑你的问题并明确你想要什么。 - piRSquared
我没有收到错误提示,但是newColumn并没有被创建。 - Harj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接