将相同的字符串附加到列熊猫中的字符串列表

时间:2020-12-19 13:57:42

标签: 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']  ['ig', 'og']

我尝试了 for 循环,并尝试了列表理解,但它很垃圾。 为了避免 for 循环,我尝试了这种矢量化方法。但是没有用。

df['d']=df['c'].cat(df['a'],axis=0).values.tolist()

一如既往,任何帮助,非常感谢。

1 个答案:

答案 0 :(得分:2)

我们可以使用 explode 取消您的列表,然后将字符串相加,最后在索引上使用 groupby 并使用 agg(list) 恢复您的列表:

ex = df.explode('c')
ex['c'] = ex['c'] + ex['a']

df['c'] = ex.groupby(ex.index)['c'].agg(list)
   a  b         c
0  d  1  [fd, hd]
1  f  2  [uf, vf]
2  g  3  [ig, og]
相关问题