我在'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 vegetvable
到Vienna sauvsage
以下情况往往不切实际,后期修剪。
df['result'] = df.result.str.extract('((?=).* v(=?))', expand=True).astype(int)
答案 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