从Pandas列中的元素中提取文本,写入新列

时间:2015-10-29 07:39:03

标签: python pandas dataframe

我在Pandas DataFrame的列(COL_NAME)中获得了一些数据。我想在'('和')'之间提取一些文字。 (这些数据存在,或者根本不存在,尽管数据中可能存在多组parens)。然后,我想将paren中的数据写入另一列,然后删除'(XXX)'来自原始字符串。

COL_NAME
========
(info) text (yay!)
I love text
Text is fun
(more info) more text
lotsa text (boo!)

转入:

COL_NAME          NEW_COL
========          =======
text (yay!)       info
i love text       None
Text is fun       None
more text         more info
lots text (boo!)  None

我可以通过隔离列,迭代它的元素,拆分(,创建两个新列表然后将它们添加到DataFrame,但是确实有更多Pythonic / Pandic方式)来做到这一点这个,对吧?

谢谢!

1 个答案:

答案 0 :(得分:3)

目前尚不清楚,为什么第二个括号不匹配。也许是因为char WHERE `start_date` BETWEEN (NOW() - INTERVAL 9 DAY) AND (NOW() - INTERVAL 7 DAY)

然后您可以将extract与正则表达式一起使用。

正则表达式!表示:

  1. \(([A-Za-z0-9 _]+)\)匹配文字\(字符
  2. (开始新群组
  3. (是与任何字母(大写或小写),数字或下划线和空格匹配的字符集
  4. [A-Za-z0-9 _]与前一个元素(字符集)匹配一次或多次。
  5. +结束了小组
  6. )匹配文字\)字符
  7. 第二个括号不匹配,因为正则表达式排除了字符) - 它不在括号!中。

    [A-Za-z0-9 _]