在括号

时间:2016-09-04 01:46:26

标签: python pandas slice parentheses

我在csv文件中有一个电影列表,100个x 1列,如下所示:

1. Mulholland Drive (David Lynch, 2001)

我试图摆脱前面的数字,把标题,导演和年份放在每一栏中。我做了:

rank = pd.read_csv("/Users/...csv", header = 0) 
rank.columns = ['1']
rank['1'] = rank['1'].str[3:]

去掉前面的所有数字,接下来,我想把括号中的内容分开:

rank = rank[rank.find("(")+1:rank.find(")")]

但我得到了:

AttributeError: 'DataFrame' object has no attribute 'find'

1 个答案:

答案 0 :(得分:3)

如果他们总是肯定采用这种格式,例如 - 仅使用给定的示例来模拟文件(如果你有括号或逗号等等,那就不是......等等) #39; t匹配格式 - 这个' ll break):

rank = pd.read_csv('somefile.csv', header=None, names=['film'])
df = rank.film.str.extract('(?:\d+\.\s+)(.*?)\((.*?),\s+(\d+)\)', expand=True)

哪个会给你:

                   0            1     2
0  Mulholland Drive   David Lynch  2001