2

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

df:
            val
date
2012-01-01  4.2      
2012-01-02  3.7
2012-01-03  6.2
2012-01-04  1.2
2012-01-05  2.4
2012-01-06  2.3

私が作成したいのは、指定された日付の0から始まり、それに応じて列に入力する列です(この場合の日付は2012-01-04であると想定します)。

df2:
            val  tracking
date
2012-01-01  4.2  -3
2012-01-02  3.7  -2
2012-01-03  6.2  -1
2012-01-04  1.2  0
2012-01-05  2.4  1
2012-01-06  2.3  2

np.arange()を使用してみましたが、必要な行を中心に配置するのに問題がありました。日付列はインデックス(pandas df)として設定されます。

ありがとう。

4

1 に答える 1

3

これを行う最も簡単な方法は、2つの部分で行うことだと思います。

df['tracking'] = pd.np.arange(len(df))

In [12]: df
Out[12]: 
            val  tracking
date                     
2012-01-01  4.2         0
2012-01-02  3.7         1
2012-01-03  6.2         2
2012-01-04  1.2         3
2012-01-05  2.4         4
2012-01-06  2.3         5

df['tracking'] -= df.ix['2012-01-04']['tracking']

In [14]: df
Out[14]: 
            val  tracking
date                     
2012-01-01  4.2        -3
2012-01-02  3.7        -2
2012-01-03  6.2        -1
2012-01-04  1.2         0
2012-01-05  2.4         1
2012-01-06  2.3         2
于 2013-02-04T18:45:17.940 に答える