首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当dtype为dtype('O')时,熊猫()失败

当dtype为dtype('O')时,熊猫()失败
EN

Stack Overflow用户
提问于 2018-04-10 17:08:01
回答 2查看 591关注 0票数 2

我认为最近版本的更改会导致对idxmax()的调用失败--在这种情况下,它以前曾经工作过。我并不是说这是一种倒退,我只是想了解原因和发出的正确呼吁。

代码语言:javascript
复制
type(sss)
<class 'pandas.core.series.Series'>
sss.dtype
dtype('O')
type(sss.index)
<class 'pandas.core.indexes.base.Index'>
sss.index=Index([...strings.., dtype'object', length=112)

serie中的单个列具有带有多个NaN的数字类型,以及一些有效的数字。所有索引都是字符串。我正在搜索列的最大值的索引。

我怎么才能得到呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-10 17:11:37

我不能在熊猫上复制0.19.2。您可以转换为float,然后使用pd.Series.idxmax

代码语言:javascript
复制
df = pd.DataFrame({'A': [0, 1.5, 1.0, np.nan, np.nan, 54, 19, np.nan]}, dtype=object,
                  index=list('abcdefgh'))

res = df['A'].astype(float).idxmax()  # 'f'
票数 2
EN

Stack Overflow用户

发布于 2018-04-10 17:15:20

备选方案一

代码语言:javascript
复制
s.index[np.argmax(s.tolist())]

备选案文二

代码语言:javascript
复制
max(s.index, key=s.get)

数字演示

代码语言:javascript
复制
s = pd.Series([0, 8, 4, 3], list('WXYZ'), object)

s

W    0
X    8
Y    4
Z    3
dtype: object
代码语言:javascript
复制
s.index[np.argmax(s.tolist())]

'X'
代码语言:javascript
复制
max(s.index, key=s.get)

'X'

字符串演示

代码语言:javascript
复制
s = pd.Series(list('5Z4A'), list('ABCD'), object)

s

A    5
B    Z
C    4
D    A
dtype: object
代码语言:javascript
复制
s.index[np.argmax(s.tolist())]

'B'
代码语言:javascript
复制
max(s.index, key=s.get)

'B'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49759346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档