防止熊猫广播

时间:2019-06-18 15:01:48

标签: python pandas numpy

我们有将数组填充到数据框中的代码(是的,我知道,这并不是最佳实践)。

df.at[index,'alist'] = list(alist)

alist是一个列表,但是广播阻止了该操作,因此list(alist)被用于阻止广播并允许该操作。

最后一组源库更新list(alist)开始广播,导致此行失败,并显示错误Must have equal len keys and value when setting with an ndarray

关于如何纠正的任何想法?

1 个答案:

答案 0 :(得分:2)

at不会为您转换dtypeloc会出错,因为它假定您正在尝试将列表推入多个单元格中。

转换您的dtype,然后使用at

df = pd.DataFrame(1, range(10), [*'ABC'])

df = df.astype({'A': object})

df.at[2, 'A'] = [1, 2, 3]

df

           A  B  C
0          1  1  1
1          1  1  1
2  [1, 2, 3]  1  1
3          1  1  1
4          1  1  1
5          1  1  1
6          1  1  1
7          1  1  1
8          1  1  1
9          1  1  1
​