python-3.x - 无法从重复轴重新索引 - 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 组。
解决方案
推荐阅读
- arrays - 如何理解 np.array 的索引
- arcgis-js-api - ArcGIS API for JavaScript 4 相当于 JavaScript 3 下一个和上一个范围?
- python - iterm2 API:连接调用失败('127.0.0.1',1912)
- java - 在 spring boot 2.4.4 rest java 11 应用程序中是否可以在 rest 控制器和控制器建议之间进行映射?
- python - 如何在 Django 中创建带有下拉列表的提交表单?
- swift - 如何更改文本和背景颜色 UIMenu | UIAction (Swift 5)
- python - 无法在 selenium python 中通过 xpath 选择按钮
- sql - 如何将 ORACLE 日期和时间戳类型转换为带时区的字符串?
- kubernetes - Openshift 4 证书位置和手动续订过程
- android - Android Kotlin-Flow:改造调用失败,没有抛出异常