首页 > 解决方案 > 无法从重复轴重新索引 - Pandas groupby 正态分布问题

问题描述

我有一个项目正在计算我的数据子集的正态分布。这在 Python 2.7 中完美运行,并且自从它被编写以来,我正在努力将它移植到 Python 3+ 并且我一直遇到重新索引错误。

data[new_field] = scipy.stats.norm(data.groupby(group_field).mean().loc[data.loc[:,group_field],source_field], data.groupby(group_field).std().loc[data.loc[:,group_field],source_field]).cdf(data[source_field])

我得到的确切错误是:

文件“/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/core/frame.py”,第 3607 行,在setitem self._set_item(key, value) 文件“/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/core/frame.py”,第 3779 行,在 _set_item value = self ._sanitize_column(value) 文件“/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/core/frame.py”,第 4501 行,在 _sanitize_column 返回 _reindex_for_setitem(value, self .index)文件“/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/core/frame.py”,第10777行,_reindex_for_setitem raise err File“/Library/Frameworks /Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/core/frame.py”,第 10772 行,在 _reindex_for_setitem reindexed_value = value.reindex(index)._values 文件“/Library/Frameworks/ Python.framework/Versions/3.8/lib/python3。8/site-packages/pandas/core/series.py”,第 4579 行,在 reindex 返回 super().reindex(index=index, **kwargs) 文件“/Library/Frameworks/Python.framework/Versions/3.8/ lib/python3.8/site-packages/pandas/core/generic.py”,第 4809 行,在 reindex 中返回 self._reindex_axes(文件“/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ site-packages/pandas/core/generic.py”,第 4830 行,在 _reindex_axes obj = obj._reindex_with_indexers(文件“/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas /core/generic.py",第 4874 行,在 _reindex_with_indexers new_data = new_data.reindex_indexer( 文件 "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/core/internals/ manager.py”,第 663 行,在 reindex_indexer self.axes[axis] 中。_validate_can_reindex(索引器)文件“/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/core/indexes/base.py”,第3785行,在_validate_can_reindex引发ValueError(“不能从重复轴重新索引“)ValueError:无法从重复轴重新索引

我尝试了多种方法来重构此代码以使其在 Python3 中运行,但它让我望而却步。数据框非常大,但重要的是 source_field 数据都是 float64 并且 group_field 数据有大约 42 组。

标签: python-3.xpandasscipy.stats

解决方案


推荐阅读