【问题标题】:'Length of values does not match length of index' on a groupbygroupby 上的“值的长度与索引的长度不匹配”
【发布时间】:2021-05-19 20:07:50
【问题描述】:

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

数据是机密的,所以这是我的错误的虚拟插图数据框 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})

我应该得到这个:

但我得到了这个:

ValueError:值的长度与索引的长度不匹配

“让它发挥作用”的唯一方法是:

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

我得到了这个:

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

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

我的数据是否以某种方式损坏?怎么样?

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

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

【问题讨论】:

  • 是熊猫版本的问题吗?我的回答对您解决问题有帮助吗?

标签: python python-3.x pandas group-by multi-index


【解决方案1】:

我测试了相同的代码,得到了预期的结果:

我在 Google Colab 中进行了测试。也许问题出在你的 Pandas 版本上。我用pandas: 1.1.5测试了你的代码

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-19
    • 2020-05-29
    • 2020-06-02
    • 2022-01-13
    相关资源
    最近更新 更多