【问题标题】:argmin in dataset containing NaN python包含 NaN python 的数据集中的 argmin
【发布时间】:2017-02-09 23:53:37
【问题描述】:
      SGSIN VNVUT CNSHK HKHKG JPOSA
To                                 
MYPKL     1     4     8     9    13
SGSIN   NaN     3     7     8    12
VNVUT   NaN   NaN     3     4     8
CNSHK     1   NaN   NaN     1     5
HKHKG   NaN   NaN   NaN   NaN     3

假设我们有上述使用 pandas 的数据集。我想计算第一列上的arg_minimum 并忽略NaN。我试过了

df[df[0]].idxmin()

但它给了

nan

但是我没有得到正确的结果。有人能帮我吗?我想要的结果是(在这种情况下)

[0,3]

【问题讨论】:

  • 你从来没有提到执行df[df[0]].idxmin()的结果?
  • 我用执行 df[df[0]].idxmin() 的结果编辑我的问题

标签: python pandas machine-learning


【解决方案1】:

你可以使用numpy的argwhere

import numpy as np

np.argwhere(df['SGSIN'].eq(df['SGSIN'].min()))

array([[0],
       [3]])

【讨论】:

  • 很抱歉,但它不起作用。我得到一个空字符串g
  • 我跑了 np.argwhere(df[df.columns[0]].eq(df[df.columns[0]].min()))。顺便说一句:我在 python 中使用熊猫
  • @Koen 有些东西没有加起来。 np.where 不返回字符串。最好的办法是提供生成最小、完整和可验证示例的代码。这样就没有歧义了。根据您在问题中提供的文字,我的答案有效。当我有时间时,我会编辑我的帖子来说明我的意思。但您可能希望尽快尝试,以便其他人可以提供帮助。
  • 我的意思是我得到一个空数组,所以只有 [[]],如果数据集不包含 NaN,你的答案就有效。如果存在 NaN,则给出 [[]]
猜你喜欢
  • 2012-11-16
  • 2012-11-18
  • 2021-06-18
  • 1970-01-01
  • 2017-09-10
  • 2016-10-05
  • 2018-11-02
  • 2019-10-31
  • 2019-05-11
相关资源
最近更新 更多