我正在使用具有排序数字索引和列的DataFrame:
6 9 15 22
3 5 2 1 7
5 0 2 9 1
8 7 3 1 1
给定索引和列名的一些值,例如(6,12),我想获得原始DataFrame的切片:
9 15
5 2 9
8 3 1
或索引值,因此对于(6,12)的相同示例,结果将是:
(5, 9), (8, 15)
如果输入与索引或列名匹配,则应调整返回切片,例如对于(8,12),返回切片应为:
9 15
8 3 1
可以在索引结果中解释为:
(8, 9), (8, 15)
在匹配索引和列名称的最佳情况下,例如(8,9)应该是:
9
8 3
可以在索引中解释(为了保持一致)结果为:
(8, 9), (8, 9)
答案 0 :(得分:1)
使用位修改后的this solution:
def get_closest_pair(i,c,t):
return [(i[i <= t[0]].max(),c[c <= t[1]].max()),
(i[i >= t[0]].min(),c[c >= t[1]].min())]
print (get_closest_pair(df.index, df.columns, (6,12)))
[(5, 9), (8, 15)]
print (get_closest_pair(df.index, df.columns, (8,12)))
[(8, 9), (8, 15)]
print (get_closest_pair(df.index, df.columns, (8,9)))
[(8, 9), (8, 9)]