【发布时间】:2018-07-24 20:28:15
【问题描述】:
原始数据框是这样的表格:
S1_r1_ctrl/ S1_r2_ctrl/ S1_r3_ctrl/
sp|P38646|GRP75_HUMAN 2.960000e-06 5.680000e-06 0.000000e+00
sp|O75694-2|NU155_HUMAN 2.710000e-07 0.000000e+00 2.180000e-07
sp|Q05397-2|FAK1_HUMAN 0.000000e+00 2.380000e-07 7.330000e-06
sp|O60671-2|RAD1_HUMAN NaN NaN NaN
我正在寻找大于零的数据框每一列中的最小值。我试图用这个example 来回答我的问题。我的代码如下:
df.ne(0).idxmin().to_frame('pos').assign(value=lambda d: df.lookup(d.pos, d.index))
但我仍然只得到零,我的结果如下所示:
pos value
S1_r1_ctrl/ sp|Q05397-2|FAK1_HUMAN 0.0
S1_r2_ctrl/ sp|O75694-2|NU155_HUMAN 0.0
S1_r3_ctrl/ sp|P38646|GRP75_HUMAN 0.0
而不是这个:
pos value
S1_r1_ctrl/ sp|O75694-2|NU155_HUMAN 2.710000e-07
S1_r2_ctrl/ sp|Q05397-2|FAK1_HUMAN 2.380000e-07
S1_r3_ctrl/ sp|O75694-2|NU155_HUMAN 2.180000e-07
我猜数据类型可能有问题,但我不确定。我假设ne(0) 会忽略零,但事实并非如此,所以我很困惑为什么。也许还有一种更智能的方法可以找到我需要的东西。
【问题讨论】:
-
请将数据框作为文本而不是图像发布
标签: python pandas dataframe types