私はデータフレームを持っています:
a b c d
A 1 6 4 1
B 2 6 3 9
C 1 2 4 5
D 4 6 1 5
行名、列名、およびシフトバックする行数を提供したいと思います。次に、そのセルの値を知りたいです。
例えば:
df.ix[C,b] & shiftback= 2 rows
戻ります: 6
これを行う超高速の方法はありますか?
私はデータフレームを持っています:
a b c d
A 1 6 4 1
B 2 6 3 9
C 1 2 4 5
D 4 6 1 5
行名、列名、およびシフトバックする行数を提供したいと思います。次に、そのセルの値を知りたいです。
例えば:
df.ix[C,b] & shiftback= 2 rows
戻ります: 6
これを行う超高速の方法はありますか?
明確にするために、データフレーム、場所 (行と列)、および番号を受け取る関数が必要ですか? pandas shift メソッドを使用する必要があります。
def f(df, row, col, nshift):
return df.shift(nshift).loc[row, col]
負の数でも機能します。外で別の方法でシフトを処理したい場合があります。これは s を返しNaN
ます。
In [12]: f(df, 'C', 'b', 2)
Out[12]: 6.0
また、高速とは、パフォーマンスが高いという意味ですか、それとも短くてシンプルですか? これは短いですが、おそらくそのパフォーマンスではありません。