gpt4 book ai didi

python - groupby 上的“值的长度与索引的长度不匹配”

转载 作者:行者123 更新时间:2023-12-03 08:27:22 29 4
gpt4 key购买 nike

我的一个 databricks 笔记本中的 pandas groupby 遇到了一个奇怪的错误。

数据是 secret 的,因此这是我的错误的虚拟插图(数据帧 df 实际上是其他两个数据帧合并的结果)。

如果您想重现数据帧:

data = {'group1':  ['a', 'b','a','a','a'],
'group2': ['f', 'f', 'f' , 'f', 'f'],
'aggregate': ['1', '2','3','4','5'],}
df = pd.DataFrame (data, columns = ['group1','group2','aggregate'])

在此阶段,数据帧 df 已正确显示。现在我正在做一个groupby:

agg = df.groupby(['group2', 'group1'],  as_index=False).agg({'aggregate':', '.join})

我应该得到这个:

enter image description here

但是我得到了这个:

ValueError: Length of values does not match length of index

“使其发挥作用”的唯一方法是:

修复 1:agg = df.groupby(['group2', 'group1'], as_index=True).agg({'aggregate':', '.join}).reset_index()

我得到了这个:

group2 group1   aggregate0      f      a  1, 3, 4, 51      f      b           22      f                NaN

修复 2:初始合并后,“重置数据框”,以获得一个新的数据框。这工作得很完美,但并不是很好。

df = pd.DataFrame.from_dict(drift.to_dict())

我的数据是否已损坏?怎么办?

任何级别的反馈都将不胜感激(无论您是否知道错误的原因 - 这将是伟大的! - 或不),只是为了让我更好地了解幕后可能发生的事情。

非常期待这里的任何建议或意见。谢谢!

最佳答案

当“groupby 列”之一具有category 类型时,Pandas 会抛出该错误。

解决方法可以是调用 astype 并选择一个文字,例如字符串:

df = df.astype({'group1': 'string', 'group2': 'string'})

截至 2023 年 3 月,该数字为 still an unresolved bug

顺便说一句this question可能有同样的错误

关于python - groupby 上的“值的长度与索引的长度不匹配”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66233424/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com