Python 如何通过在数据帧中特定列的每一行中使用.join连接列表中的所有元素

Python 如何通过在数据帧中特定列的每一行中使用.join连接列表中的所有元素,python,pandas,Python,Pandas,这是我的数据框: train = pd.DataFrame({'id':[1,2,4],'features':[["A","B","C"],["A","D","E"],["C","D","F"]]}) 我尝试执行以下代码段,但我得到: TypeError:序列项0:预期字符串,找到列表 train["some"]=train["features"].map(lambda x: " ".join([i.split(" ") for i in x])) 当我在谷歌上搜索它时,我看到了一个答案,我

这是我的数据框:

train = pd.DataFrame({'id':[1,2,4],'features':[["A","B","C"],["A","D","E"],["C","D","F"]]})
我尝试执行以下代码段,但我得到:

TypeError:序列项0:预期字符串,找到列表

train["some"]=train["features"].map(lambda x: " ".join([i.split(" ") for i in x]))
当我在谷歌上搜索它时,我看到了一个答案,我明白如果我的例子中的
x
是列表列表,就会发生这种情况,但我的例子中显然不是这样。我知道答案,但我需要解释为什么我的代码是错误的

[I.split(“”)for I in x]
应该生成一个列表列表,并假设
x
的每个
I
元素中都有空格可以拆分

“”。join([i.split(“”)表示x中的i])
将与
“”
一起加入列表。。。但是,该列表是由列表组成的,您不能加入
['a']+'+['b']
。。。这毫无意义。这就是为什么你会出错
join
期望一个字符串与执行字符串连接,但它找到了一个
列表
,不知道该做什么

之后,我不知道你想用
lambda
做什么。看起来您正试图
加入
一个列表,然后
再次拆分
它/耸耸肩

如果我把重点放在你问题的标题上

train.assign(some=train.features.map(' '.join))

    features  id   some
0  [A, B, C]   1  A B C
1  [A, D, E]   2  A D E
2  [C, D, F]   4  C D F

为了告诉您代码错误的原因,我们需要知道您正在尝试做什么。
x
是一个列表<代码>i.split(“”)是一个列表<代码>[i.split(“”)表示['A',B',C']]中的i是
['A'],['B'],['C']]
,这是一个列表列表。