无法在“v”之前删除字符串或删除字符串v并在

时间:2017-11-16 09:57:09

标签: python regex python-3.x pandas

我在'v'之前删除字符串或删除字符串v和之后

My data looks like:
Potato onions v carrot pickles
Chocolate cake v orange cake
Chicken breasts v Vegan Quinoa
Vienna sauvsage v velovute vegetvable
Etc,,

我想要的输出是:

Potato onions 
Chocolate cake 
Chicken breasts 
Vienna sauvsage

常见的特征是他们有'v' 我尝试过像

这样的东西
data['result'] = data['result'].map(lambda x: x.lstrip('+-').rstrip('aAbBcC'))

这似乎对静态数据有用,并删除字符串的特定部分,因为我的数据是动态的,并且不断更新和更改。我想让它看起来像: Vienna sauvsage v velovute vegetvableVienna sauvsage 以下情况往往不切实际,后期修剪。

df['result'] = df.result.str.extract('((?=).* v(=?))', expand=True).astype(int)

2 个答案:

答案 0 :(得分:3)

假设两边的空格都是固定的,那么你可以使用str.split

In[90]:
df['result'] = df['str'].str.split(' v ').str[0]
df

Out[90]: 
                                     str           result
0         Potato onions v carrot pickles    Potato onions
1           Chocolate cake v orange cake   Chocolate cake
2         Chicken breasts v Vegan Quinoa  Chicken breasts
3  Vienna sauvsage v velovute vegetvable  Vienna sauvsage

因此,这会将字符串拆分为' v '并返回拆分中的第一个条目

答案 1 :(得分:2)

试试这个:

In [6]: df['result'] = df.result.str.split('\s+v\s+').str[0]

In [7]: df
Out[7]:
            result
0    Potato onions
1   Chocolate cake
2  Chicken breasts
3  Vienna sauvsage