我需要找到熊猫记录中最接近零和正值的地方。
以下是一小部分数据:
Date Budget
0 2018-02-24 11:20:16 6.35
1 2018-02-24 11:34:10 5.85
2 2018-02-24 16:41:12 3.85
3 2018-02-25 00:55:18 1.10
4 2018-02-25 01:36:47 -0.90
5 2018-02-25 03:12:51 -1.90
6 2018-02-25 11:29:31 -2.90
7 2018-02-25 18:20:35 -3.65
我得到的最接近的答案是这样的:
near_zero = df['Budget'].abs().min()
它只返回值,而不返回记录加上的值是转换后的负值(索引[4])
我需要一个搜索模式,对于这个示例,返回两个列值index[3],“budget”的最低正值
最佳答案
使用boolean indexing
筛选正值,然后获取min
:
near_zero = df.loc[df['Budget'] > 0, 'Budget'].min()
print (near_zero)
1.1
如果可能的话,几分钟后:
df1 = df[df['Budget'] == near_zero]
print (df1)
Date Budget
3 2018-02-25 00:55:18 1.1
或者如果只有一个最小值,谢谢@coldspeed:
df1 = df.loc[[df.loc[df['Budget'] > 0, 'Budget'].idxmin()]]
print (df1)
Date Budget
3 2018-02-25 00:55:18 1.1