df2.loc ['average'] = df2.mean()给出NaN行?

时间:2019-04-04 00:08:37

标签: python dataframe

第一行运行良好。第二行是给我NaN,何时应该是每列的平均值?

df2.sort_values(by=['All'], ascending=[False], inplace=True)
df2.loc['average']= df2.mean()
print(df2)

这就是我得到的

          Accuracy                           All  ...    CUpDn   TRND
3        Random Forest                     83.06  ...    67.65  72.02
5        Linear Logistic Regression        79.13  ...    59.34  73.01
9        MLP                               77.16  ...    60.87  73.55
0        Decision Tree                      75.3  ...    54.32  66.56
2        SVM                               73.55  ...    59.45  73.22
8        Quadratic Discriminan Analysis    73.55  ...     63.5  66.99
1        KNeighbors                        71.58  ...    67.21  65.25
7        AdaBoost                          59.34  ...    60.33  59.34
6        SGD                               48.74  ...    50.27  67.54
4        GaussianNB                        48.52  ...    44.37   69.4
average                               NaN    NaN  ...      NaN    NaN

df2.dtypes显示:

Classifier Accuracy                           object
All                                           object
 5D                                           object
10D                                           object
15D                                           object
20D                                           object
50D                                           object
100D                                          object
200D                                          object
Chg%                                          object
MA                                            object
MAX                                           object
MIN                                           object
MM%                                           object
CUpDn                                         object
TRND                                          object
dtype: object

任何帮助将不胜感激。谢谢

1 个答案:

答案 0 :(得分:0)

这是解决我的问题的方法:

“就是问题,您的数据存储为字符串而不是数字。尝试:

df2[df2.columns[1:]] = df2[df2.columns[1:]].astype(float)

如果无法将数据转换为浮点数,则可能会出错,这就是它们首先以这种方式加载的原因。 – 1小时前的josemz”