Python Pandas:ValueError:使用可迭代设置时必须具有相等的 len 键和值

Mic*_*cht 8 python dataframe pandas

我有一个要更改的 DataFrame

df.loc[rowId,colId] = myDict 
Run Code Online (Sandbox Code Playgroud)

将字典分配给条目 [rowId,colId]。结果我收到以下错误:

ValueError: Must have equal len keys and value when setting with an iterable
Run Code Online (Sandbox Code Playgroud)

环境

df.loc[rowId,colId] = 0
Run Code Online (Sandbox Code Playgroud)

作品!在我看来,第一种方法中分配值的样式是正确的,那么有什么问题呢?

jez*_*ael 1

可以通过添加list

df.loc[rowId,colId] = [myDict]
Run Code Online (Sandbox Code Playgroud)

但为了在 pandas 中获得更好的性能,最好只在 pandas 中使用标量。

  • 不,添加列表并不能使这成为可能 (8认同)
  • 嗯,我目前正在使用 corona 数据集,它是 json 格式的。它会导致每个国家/地区有一个时间线,因此县是行,(json) 时间线是列条目。由于还有人口、人口密度、面积等附加列,因此将行改为列并以时间作为行是没有帮助的。我不确定什么是正确的 DataFrame 结构。我最终通过生成一个以 dict 作为条目的列表来解决这个问题,最后将整个列表分配给整个列 - 这有效。 (2认同)