2017-01-17 84 views
3

我有最初是一个数据帧列表,现在看起来是这样的:分割元素由字符

[['asfsd|ksjdsf|jskks','asfsd|ksjdsf|jskks','asfsd|ksjdsf', 
'asfsd|ksjdsf|jskks','asfsd|ksjdsf|jskks']] 

我不知道如何每个元素|之间的分裂,以创建一个新的列表与他们所有人。

我做了以下内容:

import pandas as pd 
df= pd.read_csv('movie_metadata.csv') 
palabras_c= df['plot_keywords'] 
data_palabras= pd.DataFrame(palabras_c).dropna() 
d=data_palabras.T 
d2=d.values.tolist() 

l =[] 
for i in range(len(d2)): 
    x= "".join(d2[i].split("|")) 
    l.append(x) 
    print l 

但我得到一个AttributeError

Traceback (most recent call last) 
<ipython-input-186-a57adb3fa668> in <module>() 
    l =[] 
    for i in range(len(d2)): 
    ---> x= "".join(d2[i].split("|")) 
     l.append(x) 


    AttributeError: 'list' object has no attribute 'split'´ 
+0

http://stackoverflow.com/questions/8203677/splitting-strings-in-python -using-specific-characters – Chuck

+1

使用d2 = d.values.tolist()[0] –

+0

完成!大!谢谢 – Crist

回答

1

试试这个

a = [['asfsd|ksjdsf|jskks','asfsd|ksjdsf|jskks','asfsd|ksjdsf', 'asfsd|ksjdsf|jskks''asfsd|ksjdsf|jskks']][0] 
l =[] 
for i in range(len(a)): 
    x= "".join(a[i].split("|")) 
    l.append(x) 

print l 

输出:

['asfsdksjdsfjskks', 'asfsdksjdsfjskks', 'asfsdksjdsf', 'asfsdksjdsfjskksasfsdksjdsfjskks'] 
+0

它给了我相同**误差**: 'l = [] 我在范围内(len(d2)): ---> x =“”.join(d2 [i] .split(“|”)) .append(x) AttributeError:'list'对象没有属性'split'' – Crist

+0

list没有split方法。所以我们必须从中提取字符串..您可以复制/粘贴我的代码并运行它。你不会得到任何错误 –

+0

我做了...并得到那个错误... – Crist

0

请问list.split('|')不工作?你有什么尝试?
此外,似乎存在于一个项目分隔符

-1
l=['asfsd|ksjdsf|jskks','asfsd|ksjdsf|jskks','asfsd|ksjdsf','asfsd|ksjdsf|jskks','asfsd|ksjdsf|jskks'] 

word_list = [] 

for w in l: 
    for k in w.split('|'): 
     word_list.append(k) 

print word_list 

输出误差小:

['asfsd', 'ksjdsf', 'jskks', 'asfsd', 'ksjdsf', 'jskks', 'asfsd', 'ksjdsf', 'asfsd', 'ksjdsf', 'jskks', 'asfsd', 'ksjdsf', 'jskks'] 
+1

请注意downvote的原因? – Anomitra