数据框中的一列是“价格”。我想把价格分为三类:便宜、中等和昂贵。如何根据满足的条件将值替换为排名,其中1=廉价,2=中等,3=昂贵?
cheap = (df["price"] <= 932)
medium = (df["price"] > 932) & (df["price"] <= 2175)
expensive = (df["price"] > 2175)
发布于 2021-02-28 22:47:35
我不确定这是否是最好的方法,但你可以尝试这样做:
df.loc[df["price"] <= 932, "price_category"] = 1
df.loc[(df["price"] > 932) & (df["price"] <= 2175), "price_category"] = 2
df.loc[df["price"] > 2175, "price_category"] = 3
发布于 2021-03-01 17:27:17
如果数据集足够大,请尝试匿名函数,否则下面作者的方法适用于较小的数据集:
anonymous = lambda price: 'cheap' if price <= 932 else 'medium' if (price > 932 and x <= 2175) else 'expensive' if price > 2175 else "Not Categorized"
df[price_column] = df[price_column].apply(anonymous)
https://stackoverflow.com/questions/66414563
复制相似问题