如何删除以某个值开头的所有值?

时间:2020-07-07 09:36:14

标签: python pandas dataframe replace

我有以下数据框。

df=
s.no., name, ratings, price
0   Microwave Oven Sharp 20 Litres, White, R-20AS-W,    5.0 out of 5 stars, SAR 199.00
1   Geepas 20 Liter Microwave Oven - GMO1894,   SAR 186.00, SAR 186.00
2   REBUNE ELECTRIC OVEN 10L, RE1016,   SAR 149.00, SAR 149.00
3   Gas stove auto ignition 2 burner,   SAR 240.00, SAR 240.00
4   Nikai Microwave - 20 LTR -NMO515N8N,    5.0 out of 5 stars, SAR 192.15

我要从“等级”列中删除所有以SAR开头的值,并将其替换为“无等级”。

输出必须如下:

df=
    s.no., name, ratings, price
    0   Microwave Oven Sharp 20 Litres, White, R-20AS-W,    5.0 out of 5 stars, SAR 199.00
    1   Geepas 20 Liter Microwave Oven - GMO1894,   No Ratings, SAR 186.00
    2   REBUNE ELECTRIC OVEN 10L, RE1016,   No Ratings, SAR 149.00
    3   Gas stove auto ignition 2 burner,   No Ratings, SAR 240.00
    4   Nikai Microwave - 20 LTR -NMO515N8N,    5.0 out of 5 stars, SAR 192.15

1 个答案:

答案 0 :(得分:0)

您想要实现的目标可以使用str.replace

设置

In[1]: df = pd.DataFrame([["SAR 186.00", 12], ["5 out of 5 stars", 13]], columns=['ratings', 'something'])

#df
Out[2]:         ratings         something
          0     SAR 186.00          12
          1     5 out of 5 stars    13

In[3]: df['ratings'] = df.ratings.str.replace("SAR \d+.\d+", "no rating", regex=True)
Out[4]:     ratings         something
       0    no rating           12
       1    5 out of 5 stars    13