我需要找到熊猫记录中最接近零和正值的地方。
以下是一小部分数据:

                 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

10-06 05:17
查看更多