熊猫图案匹配添加文本

时间:2017-06-28 15:32:34

标签: python loops pandas

我有一个pandas dataframe dfdata,它有一个字段" fieldname"包含字符串数据,子字符串条目如"则值)"。我想用"然后值结束'"来替换这些条目。问题是"价值"对于不同的行是不同的,并且字符串包含多个")"。所以str.replace不会工作。我想的可能是带有通配符的re.sub,但是我需要在替换中显示外卡值。我以为我可能需要写一个循环。有人知道这样做的光滑方式吗?我在下面有示例数据和输出。

Example Data:

import pandas as pd
dfdata = pd.DataFrame({'fieldname1': ['Bob', 'Jane'], 
                   'fieldname2': ['Other words when spaghetti then turnip), do this)', 'Different other words when tomato then ketchup)']})

Example Output:

import pandas as pd
dfdata = pd.DataFrame({'fieldname1': ['Bob', 'Jane'], 
                   'fieldname2': ['Other words when spaghetti then turnip end), do this)', 'Different other words when tomato then ketchup end)']})

1 个答案:

答案 0 :(得分:2)

IIUC:

In [36]: dfdata['fieldname2'] = \
             dfdata['fieldname2'].str.replace(r'(\s*then\s*)(\w+)\)', r'\1\2 end)')

In [37]: dfdata
Out[37]:
  fieldname1                                             fieldname2
0        Bob  Other words when spaghetti then turnip end), do this)
1       Jane    Different other words when tomato then ketchup end)