python - Pandas df.mean() 抛出 TypeError:'NoneType' 对象不可调用或返回空系列
问题描述
标题说明了一切。
df = pd.DataFrame({"A":np.array([1,2,3,4]),"B":np.array([1,2,3,4])})
df_mean = df.mean(axis=0)
print(df_mean)
上面的代码输出一个空系列对象:
Series([], dtype: float64)
在填充有 MNIST 数据的数据帧上使用 df.mean() 会引发以下堆栈跟踪:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-42-bab38039484e> in <module>
2
3 X_train_class, y_train_class, X_valid_class, \
----> 4 y_valid_class, X_test_class, y_test_class = prepare_load_classification_data()
5 X_train_class.mean()
6 # ebm = ExplainableBoostingClassifier()
<ipython-input-37-b1dcfdd01adc> in prepare_load_classification_data()
45 train_features, train_labels, dev_features, \
46 dev_labels, test_features, test_labels = load_data()
---> 47 feature_mean, label_mean = train_features.mean(axis=0), train_labels.mean(axis=0)
48
49 train_features = pd.DataFrame(data=np.where(train_features > feature_mean, 1, 0), columns=FEATURE_NAMES)
c:\users\fmijs\anaconda3\lib\site-packages\pandas\core\generic.py in mean(self, axis, skipna, level, numeric_only, **kwargs)
11107 )
11108 def mean(self, axis=None, skipna=None, level=None, numeric_only=None, **kwargs):
> 11109 return NDFrame.mean(self, axis, skipna, level, numeric_only, **kwargs)
11110
11111 # pandas\core\generic.py:10924: error: Cannot assign to a method
c:\users\fmijs\anaconda3\lib\site-packages\pandas\core\generic.py in mean(self, axis, skipna, level, numeric_only, **kwargs)
10718 def mean(self, axis=None, skipna=None, level=None, numeric_only=None, **kwargs):
10719 return self._stat_function(
> 10720 "mean", nanops.nanmean, axis, skipna, level, numeric_only, **kwargs
10721 )
10722
c:\users\fmijs\anaconda3\lib\site-packages\pandas\core\generic.py in _stat_function(self, name, func, axis, skipna, level, numeric_only, **kwargs)
10703 return self._agg_by_level(name, axis=axis, level=level, skipna=skipna)
10704 return self._reduce(
> 10705 func, name=name, axis=axis, skipna=skipna, numeric_only=numeric_only
10706 )
10707
c:\users\fmijs\anaconda3\lib\site-packages\pandas\core\series.py in _reduce(self, op, name, axis, skipna, numeric_only, filter_type, **kwds)
4150 )
4151 with np.errstate(all="ignore"):
-> 4152 return op(delegate, skipna=skipna, **kwds)
4153
4154 def _reindex_indexer(self, new_index, indexer, copy):
c:\users\fmijs\anaconda3\lib\site-packages\pandas\core\nanops.py in _f(*args, **kwargs)
69 try:
70 with np.errstate(invalid="ignore"):
---> 71 return f(*args, **kwargs)
72 except ValueError as e:
73 # we want to transform an object array
c:\users\fmijs\anaconda3\lib\site-packages\pandas\core\nanops.py in f(values, axis, skipna, **kwds)
122 # TypeError if called
123 kwds.pop("mask", None)
--> 124 result = bn_func(values, axis=axis, **kwds)
125
126 # prefer to treat inf/-inf as NA, but must compute the func
TypeError: 'NoneType' object is not callable
它似乎与 pandas 或 numpy 的安装损坏有关,但在重新安装降级或启动新的 Conda 环境后,问题仍然存在。任何帮助将不胜感激!
解决方案
我用 pandas 1.1.3 和 numpy 1.19.2 运行它并工作。我还在 Jupyter 中使用 pandas 1.2.3 和 numpy 1.19.5 运行它并工作。
我更新了所有内容并使用 pandas 1.2.4 和 numpy 1.20.2 运行它,它工作正常。
所以要么是因为 numpy,要么是因为不同的原因。
你真的只有这个代码吗?或者是否有其他代码可能会干扰您的代码段?
推荐阅读
- amazon-web-services - AWS AppSync 列表查询在控制台和代码中出现 504 错误
- jenkins - 运行 Terraform 维护插件的 Jenkins 作业
- google-cloud-platform - 如何在 BigQuery 中提取年月日?
- angular - ionic:如何使用 push 将值输入到 Angular 中
- mongodb - 仅每个分片键(分区键)的 Cosmos DB 值唯一性点
- android - Android 应用程序运行失败,出现“重复条目:META-INF/services”错误
- git - Github - 一个存储库中的目录作为单独的存储库
- c++ - C ++中枚举的前向声明给出范围错误?
- r - 在 facet_wrap() 中更改标签时使用上标
- python - 如何在 Windows 10 中为 python 3.9 安装 pygame?