我在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方式)来做到这一点这个,对吧?
谢谢!
答案 0 :(得分:3)
目前尚不清楚,为什么第二个括号不匹配。也许是因为char WHERE `start_date` BETWEEN (NOW() - INTERVAL 9 DAY) AND (NOW() - INTERVAL 7 DAY)
。
然后您可以将extract与正则表达式一起使用。
正则表达式!
表示:
\(([A-Za-z0-9 _]+)\)
匹配文字\(
字符(
开始新群组(
是与任何字母(大写或小写),数字或下划线和空格匹配的字符集[A-Za-z0-9 _]
与前一个元素(字符集)匹配一次或多次。+
结束了小组)
匹配文字\)
字符第二个括号不匹配,因为正则表达式排除了字符)
- 它不在括号!
中。
[A-Za-z0-9 _]