将列表分配给pandas数据框元素

时间:2020-06-11 06:32:13

标签: python pandas dataframe

我想在数据框中添加一列,并为它的每个元素设置一个列表,在执行以下代码后,没有任何改变,

df = pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})  
df['C'] = 0 
for i in range(len(df)):
    lst = [6,7,8]
    data.iloc[i]['C'] = []
    data.iloc[i]['C'] = lst

此外,基于Assigning a list value to pandas dataframe,我在上面的代码上尝试了df.at [i,'C'],出现了以下错误:“使用序列设置数组元素。”

2 个答案:

答案 0 :(得分:3)

您可以将np.tilenp.ndarray.tolist一起使用

l = len(df)
df['C'] = np.tile([6,7,8],(l,1)).tolist()
df
   A  B          C
0  1  4  [6, 7, 8]
1  2  5  [6, 7, 8]
2  3  6  [6, 7, 8]

答案 1 :(得分:2)

一个想法是使用列表理解:

lst = [6,7,8]

df['C'] = [lst for _ in df.index]

print (df)
   A  B          C
0  1  4  [6, 7, 8]
1  2  5  [6, 7, 8]
2  3  6  [6, 7, 8]

在您为我工作的解决方案中:

df['C'] = ''
for i in range(len(df)):
    lst = [6,7,8]
    df.iloc[i, df.columns.get_loc('C')] = lst
相关问题