熊猫-提取两个字符串之间的文本

时间:2019-12-16 11:50:59

标签: pandas

我有一个数据框,其列包含以下格式的数据:

---
- !ruby/hash:Control::Keys
  name: sample1
  value: 101

我试图仅提取名称和值并将其存储为新列。我尝试过

df['col'].str.extract(r'name:(\w+)value')

但它返回了NAN

期望值:

name,value
sample1,101

2 个答案:

答案 0 :(得分:1)

您可以尝试

>>> df['names'] = df.col.str.extract(r'(?<=name:)\s+(\w+)')
>>> df['values'] = df.col.str.extract(r'(?<=value:)\s+(\w+)')
>>> df
                                                 col    names values
0  ---\n- !ruby/hash:Control::Keys\n  name: sampl...  sample1    101

答案 1 :(得分:0)

尝试使用此正则表达式模式:

r'(name: (\w+))|(value: (\w+))

请牢记空格。

您将获得一个包含['sample1',101]的列表。