我想在数据框中添加一列,并为它的每个元素设置一个列表,在执行以下代码后,没有任何改变,
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'],出现了以下错误:“使用序列设置数组元素。”
答案 0 :(得分:3)
您可以将np.tile
与np.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