【发布时间】: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