python中的split()如果有条件,如何使用必须跳过某些值

时间:2019-07-09 09:57:28

标签: python pandas split

我是python的新手,我想将数据分成一列,其中包括发行年份的电影名称到多列,所以我找到了拆分功能。

数据按标题(年份)组织。

我在python中尝试过的是:

movies['title'].str.split('(', 1, expand = True)

以下情况发生了异常:

  

“失落儿童之城”,洛杉矶(Citédes enfants perdus,La)(1999年)

     

失落儿童之城。 Citédes enfants perdus,La)(1999年)

我原以为只有1999年)转到第二列。

我需要你的帮助!

2 个答案:

答案 0 :(得分:3)

我投票赞成在re.findall模式下使用(.*?) \((\d{4})\)

input = """City of Lost Children, The (Cité des enfants perdus, La) (1999)
           City of Lost Children, The. Cité des enfants perdus, La) (1999)"""

matches = re.findall(r'\s*(.*?) \((\d{4})\)', input)
print(matches)

此打印:

[('City of Lost Children, The (Cité des enfants perdus, La)', '1999'),
 ('City of Lost Children, The. Cité des enfants perdus, La)', '1999')]

答案 1 :(得分:3)

我建议-- Optimized function good1() return test() end -- Optimized function good2() return test(foo(), bar(5 + baz())) end -- Not optimised function bad1() return test() + 1 end -- Not optimised function bad2() return test()[2] + foo() end

给出一系列const data = from([1, 2, 3]).pipe( // Memorize here map(a => req1(a)), flatMap(a => a), map(b => syncOp(b)), map(c => req2(c)), flatMap(d => d), map(e => ({id: _memorized_, value: e})) merge(data).subscribe(f => console.log(f.id, f.value))

pd.Series.str.rsplit

使用s

print(s)
0    City of Lost Children, The (Cité des enfants perdus, La) (1999)
1    'City of Lost Children, The. Cité des enfants perdus, La) (1999)'
dtype: object