我是Python的新手,正在学习使用数据框和列表推导式。 我有以下数据框:
df1=pd.DataFrame({'names':[[['Hans Peter'],['Harry Potter']],[['bla bla'],['some string']]]})
现在我希望将每个子列表拆分为单词。 对于一个只有一个列表的列表,我可以使用
x=[['Hans Peter'],['Harry Potter'],['bla bla'],['some string here']]
res=[]
for list in x:
res.append(str(list[0]).split())
但是我应该如何迭代一个dataframe呢?我认为我需要构建一个列表推导,然后使用apply()
方法来遍历.append
?但我不知道该怎么做。
对于单个列表,我会像这样构建列表推导:
res = [str(list[0]).split for list in x]
但我得到了一个包含这些函数的列表:
[<function str.split(sep=None, maxsplit=-1)>,...]
DataFrame的预期输出应为:
0 [['Hans','Peter],['Harry','Potter']]
1 [['bla','bla'],['some','string']]
.split
而不是.split()
(这就是为什么它返回一个函数而不是结果),并且你使用list
作为变量,这可能会掩盖内置的list
类型并引起问题。 - G. Anderson