Python 将相同的字符串附加到列中的字符串列表中
我有一个df:Python 将相同的字符串附加到列中的字符串列表中,python,pandas,Python,Pandas,我有一个df: a b c 0 'd' 1 ['f', 'h'] 1 'f' 2 ['u', 'v'] 2 'g' 3 ['i', 'o'] 我想将df['a']附加到df['c']列的每个元素。 预期产出: a b c d 0 'd' 1 ['f', 'h'] ['fd', 'hd'] 1 'f' 2 ['u', 'v'] ['uf', 'vf'] 2 'g' 3 ['i', 'o']
a b c
0 'd' 1 ['f', 'h']
1 'f' 2 ['u', 'v']
2 'g' 3 ['i', 'o']
我想将df['a']附加到df['c']列的每个元素。
预期产出:
a b c d
0 'd' 1 ['f', 'h'] ['fd', 'hd']
1 'f' 2 ['u', 'v'] ['uf', 'vf']
2 'g' 3 ['i', 'o'] ['ig', 'og']
我尝试了循环,尝试了列表理解,但这是垃圾。
为了避免for循环,我尝试了这种矢量化方法。但没有起作用
df['d']=df['c'].cat(df['a'],axis=0).values.tolist()
一如既往,非常感谢您的帮助。我们可以使用
分解
取消列表,然后将字符串添加到一起,最后在索引上使用groupby
,并使用agg(list)
取回列表:
ex = df.explode('c')
ex['c'] = ex['c'] + ex['a']
df['c'] = ex.groupby(ex.index)['c'].agg(list)
我们可以使用
explode
取消列出列表,然后将字符串添加到一起,最后在索引上使用groupby
,并使用agg(list)
取回列表:
ex = df.explode('c')
ex['c'] = ex['c'] + ex['a']
df['c'] = ex.groupby(ex.index)['c'].agg(list)
这不是字符串列表的正确表示形式。字符串应该用括号括起来,比如
['f','h']
yes。对不起,陈述错误。请立即查找更新。这不是字符串列表的正确表示形式。字符串应该用括号括起来,比如['f','h']
yes。对不起,陈述错误。请立即查找更新。