2

私はデータフレームを持っています:

    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

これを行う超高速の方法はありますか?

4

1 に答える 1

2

明確にするために、データフレーム、場所 (行と列)、および番号を受け取る関数が必要ですか? 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

また、高速とは、パフォーマンスが高いという意味ですか、それとも短くてシンプルですか? これは短いですが、おそらくそのパフォーマンスではありません。

于 2013-10-25T17:18:58.500 に答える