防止大Pandas广播

2024-09-27 22:23:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我们有将数组填充到数据帧中的代码(是的,我知道,不完全是最佳实践)

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

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

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

你对如何改正有什么想法吗


Tags: 数据代码df列表indexlenhave错误
1条回答
网友
1楼 · 发布于 2024-09-27 22:23:18

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
​

相关问题 更多 >

    热门问题