Pandas max()和min()工作但是mean()给出"没有数字类型" errror

时间:2014-06-02 16:13:34

标签: python pandas

我在使用以下Pandas代码时遇到了一些困难:

groupby_obj = features.groupby('Feature')
print groupby_obj["Value"].max() # This works
print groupby_obj["Value"].min() # This works
print groupby_obj["Value"].mean() #This doesn't work

第三行出现以下错误:

DataError: No numeric types to aggregate

这看起来与this的错误相同,但答案并不容易理解。使用frame.astype(float)对我来说不起作用,因为有些列是字符串。我可以做features[['Value']] = features[['Value']].astype(float)但它看起来很乱(并且可能涉及不必要的复制操作)。

在实例化DataFrame时,有没有办法为某些列指定某些类型?或者是完全不同的方式来实现我想要做的事情?

1 个答案:

答案 0 :(得分:2)

关于min/max问题,请考虑strings。您可以使用min/max字符串(分别为小写字母,'a''z'),但mean字符串没有任何意义。

另外,尝试将特定列(Value)转换为float,然后进行数学运算。