新列,每个元素作为列表pandas

时间:2018-06-14 21:42:54

标签: python pandas

我有一些数据框,我想添加新列,在这个新列中,每个元素应该是一个字符串,例如两行,

df
           index colA colB 
           0     a    a1
           1     b    b1

现在我可以添加新列

df['colC']=5
           index colA colB colC
           0     a    a1   5
           1     b    b1   5

现在我想添加第三列,每个元素都作为列表

           index colA colB colC
           0     a    a1   ['m','n','p']
           1     b    b1   ['m','n','p']

但是,

df['colC']=['m','n','p'] is giving error
ValueError: Length of values does not match length of index

这很明显。

I know in our example I can do

df['colC']=[['m','n','p'],['m','n','p']]

但是当我不知道行数时,我想将每个元素设置为相同的字符串列表。 任何人都可以建议一些容易实现的目标。

1 个答案:

答案 0 :(得分:4)

向单元格添加objectlist)非常棘手

df['colC']=[['m','n','p']]*len(df)

或者

df['colC'] = [list('mnp') for _ in range(len(df))]

df返回:

   index colA colB       colC
0      0    a   a1  [m, n, p]
1      1    b   b1  [m, n, p]