我们假设我有这个数据帧df
:
'Location' 'Rec ID' 'Duration'
0 Houston 126 17
1 Chicago 338 19.3
我想添加一个包含与我的录音相对应的数组的列,如:
'Location' 'Rec ID' 'Duration' 'Rec'
0 Houston 126 17 [0.2, 0.34, 0.45, ..., 0.28]
1 Chicago 338 19.3 [0.12, 0.3, 0.41, ..., 0.39]
当我执行df.set_value()
命令时,出现以下错误:
ValueError:使用序列设置数组元素。
答案 0 :(得分:1)
我认为最简单的方法是指定list
lists
,只需要lists
与length
DataFrame
相同的长度:
arr = [[0.2, 0.34, 0.45, 0.28], [0.12, 0.3, 0.41, 0.39]]
print (arr)
[[0.2, 0.34, 0.45, 0.28], [0.12, 0.3, 0.41, 0.39]]
print (len(arr))
2
print (len(df))
2
df["'Rec'"] = arr
print (df)
'Location' 'Rec ID' 'Duration' 'Rec'
0 0 Houston 126 17.0 [0.2, 0.34, 0.45, 0.28]
1 1 Chicago 338 19.3 [0.12, 0.3, 0.41, 0.39]
如果使用numpy array
,请先转换tolist
:
arr = np.array([[0.2, 0.34, 0.45, 0.28], [0.12, 0.3, 0.41, 0.39]])
print (arr)
[[ 0.2 0.34 0.45 0.28]
[ 0.12 0.3 0.41 0.39]]
df["'Rec'"] = arr.tolist()
print (df)
'Location' 'Rec ID' 'Duration' 'Rec'
0 0 Houston 126 17.0 [0.2, 0.34, 0.45, 0.28]
1 1 Chicago 338 19.3 [0.12, 0.3, 0.41, 0.39]