我有一个数据帧:
a b c d
A 1 6 4 1
B 2 6 3 9
C 1 2 4 5
D 4 6 1 5
id 喜欢提供行名、列名和要移回的行数。然后我会想知道该单元格中的值是什么。
例如:
df.ix[C,b] & shiftback= 2 rows
会返回: 6
有没有超快速的方法可以做到这一点?
澄清一下,你想要一个接受数据帧、位置(行和列)和数字的函数吗?您需要使用熊猫移位方法。
def f(df, row, col, nshift):
return df.shift(nshift).loc[row, col]
也适用于负数。您可能希望处理会让您与众不同的轮班;这将返回NaN
S。
In [12]: f(df, 'C', 'b', 2)
Out[12]: 6.0
同样说快,你的意思是高性能还是简短简单?这很短,但可能不是那么高性能。