使用Regex条件在Pandas DataFrame中创建新列

时间:2017-08-10 21:48:00

标签: python pandas dataframe

这是我的问题。

我知道如何基于RegEx创建一个布尔列,如下所示:

df['New Column'] = df.columnA.str.match(regex)

在此示例中,'新列'将包含真或假值。

但是,如果我想使用条件说"如果我的RegEx返回true,我该怎么办?推送"这个"如果它返回False,则按下""值。

感谢您的帮助:)

2 个答案:

答案 0 :(得分:1)

既然您已经获得了一系列布尔值,为什么不能使用简单的map

df['New Column'] = list(map(lambda b : 'this' if b else 'that', df.foo.str.match('foo.')))

答案 1 :(得分:-1)

编辑:

df['New Column'] = ["this" if row.str.match(regex) else "that" for row in df.columnA]