熊猫.DataFrame.agg不适用于np.std



我正在尝试使用pandas.DataFrame.agg函数,该函数位于带有agg功能的数据帧的第一列上,是numpy.std
我不知道为什么它能与numpy.mean一起使用,而不能与numpy.std一起使用
有人能告诉我在什么情况下会发生这种事吗
这很奇怪@@
下面描述了我所面临的情况。

我的来源是这样的:

print(type(dataframe))
print(dataframe.head(5))
first_col = dataframe.columns.values[0]
agg_df = dataframe.agg({first_col: [np.mean]})
print(agg_df)

那么它显示的结果就像这个

<class 'pandas.core.frame.DataFrame'>
ax
0   -98.06
1   -97.81
2   -96.00
3   -93.44
4   -92.94
ax
mean   -98.06

现在我将函数从np.mean更改为np.std(不更改任何其他内容(

print(type(dataframe))
print(dataframe.head(5))
first_col = dataframe.columns.values[0]
agg_df = dataframe.agg({first_col: [np.std]})
print(agg_df)

它显示错误

Traceback (most recent call last):
File "C:prediction_framework_djangopredictionspredictor.py", line 112, in pre_aggregated_unseen_data
agg_df = dataframe.agg({axis: [np.std]})
File "C:prediction_framework_djangoenvlibsite-packagespandascoreframe.py", line 7578, in aggregate
result, how = self._aggregate(func, axis, *args, **kwargs)
File "C:prediction_framework_djangoenvlibsite-packagespandascoreframe.py", line 7609, in _aggregate
return aggregate(self, arg, *args, **kwargs)
File "C:prediction_framework_djangoenvlibsite-packagespandascoreaggregation.py", line 582, in aggregate
return agg_dict_like(obj, arg, _axis), True
File "C:prediction_framework_djangoenvlibsite-packagespandascoreaggregation.py", line 768, in agg_dict_like
results = {key: obj._gotitem(key, ndim=1).agg(how) for key, how in arg.items()}
File "C:prediction_framework_djangoenvlibsite-packagespandascoreaggregation.py", line 768, in <dictcomp>
results = {key: obj._gotitem(key, ndim=1).agg(how) for key, how in arg.items()}
File "C:prediction_framework_djangoenvlibsite-packagespandascoreseries.py", line 3974, in aggregate
result, how = aggregate(self, func, *args, **kwargs)
File "C:prediction_framework_djangoenvlibsite-packagespandascoreaggregation.py", line 586, in aggregate
return agg_list_like(obj, arg, _axis=_axis), None
File "C:prediction_framework_djangoenvlibsite-packagespandascoreaggregation.py", line 672, in agg_list_like
raise ValueError("no results")
ValueError: no results

所以错误是在agg_list_like中引发ValueError("无结果"(ValueError:无结果

感谢您的时间和帮助。

只需使用pandas内置:

# Note the use of string to denote the function here
df.agg({first_col: ['mean', 'std']})
# You can also simply use the following
df[first_col].mean()
df[first_col].std()

[EDIT]:您得到的错误可能是由混合类型引起的。您可以通过查看df.dtypes来检查所有数据类型是否都是浮动的。如果你有一个是object,那么把有问题的(可能是空字符串(转换成你需要的任何东西,np.std和Panda的内置std应该可以

最新更新