Python 对于具有排序、数字索引和列的数据帧,返回与传递的给定值最接近的索引值和列名的元组
我正在使用一个具有排序数字索引和列的数据帧:Python 对于具有排序、数字索引和列的数据帧,返回与传递的给定值最接近的索引值和列名的元组,python,pandas,dataframe,slice,Python,Pandas,Dataframe,Slice,我正在使用一个具有排序数字索引和列的数据帧: 6 9 15 22 3 5 2 1 7 5 0 2 9 1 8 7 3 1 1 给定索引和列名的一些值,例如(6,12),我想获得原始数据帧的切片: 9 15 5 2 9 8 3 1 或者索引值,因此对于(6,12)的相同示例,结果将是: (5, 9), (8, 15) 如果输入与索引或列名匹配,则应调整
6 9 15 22
3 5 2 1 7
5 0 2 9 1
8 7 3 1 1
给定索引和列名的一些值,例如(6,12),我想获得原始数据帧的切片:
9 15
5 2 9
8 3 1
或者索引值,因此对于(6,12)的相同示例,结果将是:
(5, 9), (8, 15)
如果输入与索引或列名匹配,则应调整返回片,例如(8,12),返回片应为:
9 15
8 3 1
9
8 3
可在索引结果中解释为:
(8, 9), (8, 15)
(8, 9), (8, 9)
在索引和列名匹配的最佳情况下,例如(8,9),它应该是:
9 15
8 3 1
9
8 3
可在指数结果(一致性)中解释为:
(8, 9), (8, 15)
(8, 9), (8, 9)
使用稍加修改的:
def获取最接近的对(i、c、t):
return[(i[i=t[1]].min())]
打印(获取最近的一对(df.index,df.columns,(6,12)))
[(5, 9), (8, 15)]
打印(获取最近的一对(df.index,df.columns,(8,12)))
[(8, 9), (8, 15)]
打印(获取最近的一对(df.index,df.columns,(8,9)))
[(8, 9), (8, 9)]
这里的切片规则是什么?我理解在我们的示例(6,12)中输入是(索引,列)->,但它意味着什么?它的索引和列应大于或…?如果(6,15)
,会发生什么情况?或(8,12)
?规则是获取与给定值最接近的索引和列名对。谢谢你的好意,我已经更新了描述以减少歧义。事实证明,我的列名已经被读取为int,所以不需要c=c.str.strip(“”).astype(int)
,这是我的错误。很好!