在同样没有数据帧的数据帧中查找最大值';s、 Python 3.5

在同样没有数据帧的数据帧中查找最大值';s、 Python 3.5,python,pandas,dataframe,Python,Pandas,Dataframe,我的数据帧设置如下: Group1 Group2 Group3 0 0.04058678 0.04282689 0.06680679 1 0.11657916 0.06695174 0.05153584 2 0.08382576 0.03587087 0.08919266 3 0.17477007 0.08141088 0.10727157 4 0.0821453 0.08226264 0.06800853 5 0.15

我的数据帧设置如下:

     Group1      Group2      Group3
0   0.04058678  0.04282689  0.06680679
1   0.11657916  0.06695174  0.05153584
2   0.08382576  0.03587087  0.08919266
3   0.17477007  0.08141088  0.10727157
4    0.0821453  0.08226264  0.06800853
5   0.15685707        None  0.09467674
6   0.08237982        None  0.14494069
7         None        None  0.14541177
8         None        None  0.12181681
9         None        None  0.17966472
10        None        None   0.1509818
我尝试使用df.max()查找数据帧中的最大值,但它不适用于此数据,我认为这是因为某些字段中没有

我得到这个错误:

print(df.max())  
TypeError: unorderable types: float() > str()
如何处理此数据帧中的无,以便获得最大值?

我认为您可以使用:

print (df.apply(lambda x: pd.to_numeric(x, errors='coerce')).max())
Group1    0.174770
Group2    0.082263
Group3    0.179665
dtype: float64

print (df.apply(lambda x: pd.to_numeric(x, errors='coerce')).idxmax())
Group1    3
Group2    4
Group3    9
dtype: int64
这就是你想要的吗

最大元素:

In [53]: df.replace('None', np.nan).max().max()
Out[53]: 0.17966472

每列的最大值:

In [35]: df.replace('None', np.nan).astype(float).max()
Out[35]:
Group1    0.174770
Group2    0.082263
Group3    0.179665
dtype: float64
或索引的最大值

In [28]: df.replace('None', np.nan).astype('float').idxmax()
Out[28]:
Group1    3
Group2    4
Group3    9
dtype: int64
说明:

首先用np.nan(不是数字)替换所有None:

查找最大值(系列):

查找系列中的最大值:

In [68]: df.replace('None', 0).max().max()
Out[68]: 0.17966472

哦,我现在明白了。idxmax显示具有最高值的索引。我实际上需要的是数据帧中的最高值。@Chris,
-np.inf
-negative infinity你能解释一下df.replace('None',np.nan')的情况吗?max().max()@Chris,我添加了一个解释df.replace('None',np.nan)。astype('float').max().max()对我有效。是的,这是max值的索引。答案已编辑。
In [56]: df.replace('None', np.nan)
Out[56]:
        Group1      Group2    Group3
0   0.04058678  0.04282689  0.066807
1   0.11657916  0.06695174  0.051536
2   0.08382576  0.03587087  0.089193
3   0.17477007  0.08141088  0.107272
4    0.0821453  0.08226264  0.068009
5   0.15685707         NaN  0.094677
6   0.08237982         NaN  0.144941
7          NaN         NaN  0.145412
8          NaN         NaN  0.121817
9          NaN         NaN  0.179665
10         NaN         NaN  0.150982
In [59]: df.replace('None', np.nan).max()
Out[59]:
Group3    0.179665
dtype: float64

In [67]: type(df.replace('None', 0).max())
Out[67]: pandas.core.series.Series
In [68]: df.replace('None', 0).max().max()
Out[68]: 0.17966472