在下面的例子中,我有电影的数据:
我想将title列的值拆分为2个新列,即其中一个新列(“movie title”)将取=玩具总动员作为行值,另一个新列(“year”)将取=1995作为行值。在
如何对整个数据帧执行此操作?在
title \
0 Toy Story (1995)
1 Jumanji (1995)
2 Grumpier Old Men (1995)
3 Waiting to Exhale (1995)
4 Father of the Bride Part II (1995)
Tags:
尝试将str accessor与
split
一起使用,使用一个查找空格和open paranthesis或close paranthesis的正则表达式:输出:
^{pr2}$如果您不想要
regex
解决方案{cd1>使用^:
样本数据:
^{pr2}$输出:
我们使用的正则表达式是:
'(.*)\s\((\d+)'
。在表达式的第一部分是:
(.*)
。括号表示它是一个捕获组,括号内的内容表示我们要捕获的内容。在本例中,.*
表示我们贪婪地想要捕获所有东西。在capturing组之后,我们有\s\(
,它的字面意思是后面跟着一个左括号的空格,所以' ('
。因为在此之前的捕获组是贪婪的,如果有多个这样的匹配,我们将捕获直到最后' ('
的所有内容。(例如,查看它如何正确地捕获Hello (Goodbye) (1995)
。在最后,我们添加第二个捕获组,其中
\d+
作为我们要捕获的内容,它捕获标题中最后一个' ('
之后的所有数字,对我们来说,这将是4位数的年份。在相关问题 更多 >
编程相关推荐