首页 > 解决方案 > 新列,每个元素作为列表 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']]

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

标签: pythonpandas

解决方案


object( list) 添加到单元格是棘手的

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]

推荐阅读