【发布时间】:2020-09-04 02:22:32
【问题描述】:
我正在处理一个字符串列表和一个包含字符串的数据框。想象一下场景:
A = ['the', 'a', 'with', 'from', 'on']和一个数据框:
df = {'col1':['string', 'string'], 'col2':['镇上的人', '公交车上的人']}
我现在正在尝试在我的 data_frame 中创建一个新列,该列将在我的 data_frame 的第 2 列中显示我的列表 A 中的值(在本例中:the, from, a)
我写的是这样的:
def words_in_A(行):
资源=[]
对于 A 中的项目:
如果在行中的项目:
res.extend(项目)
返回资源
df[col3] = df[col2].apply(lambda x: words_in_A(x))
我希望输出是一个包含多个值的列表:
col 1 col2 col3 将镇上的人串成“the”、“from”、“a” 把公共汽车上的人串成'the','on','a'
但该函数只返回最后一项 ('a') 而不是列表。我不确定为什么使用 extend() 没有为我生成列表。请帮忙!
【问题讨论】:
-
您的“return”将返回“if”标识的第一个项目。你的意思是有不同的缩进吗?
-
首先避免使用
list作为变量名,它是保留字 -
你预期的输出是什么。请注意,
col3确实 包含一个列表,但它只是由.extend生成的列表,其中包含来自A的第一项在每一行中的空列表... -
@RichieV(顺便说一句,有人告诉我这是内置的)
-
@RichieV 好吧,它不是保留,否则根据定义,你不能使用它,但无论如何都是个好建议