<p>如果我正确理解日志返回,则您需要以下内容:</p>
<pre><code>In [155]:
t="""DAX 20150728 11173.910156
DAX 20150727 11056.400391
DAX 20150724 11347.450195
DAX 20150723 11512.110352"""
df = pd.read_csv(io.StringIO(t), header=None, sep='\s+',names=['exchange', 'date', 'close'], parse_dates=[1])
df
Out[155]:
exchange date close
0 DAX 2015-07-28 11173.910156
1 DAX 2015-07-27 11056.400391
2 DAX 2015-07-24 11347.450195
3 DAX 2015-07-23 11512.110352
In [157]:
df['log return'] = np.log(df['close']) - np.log(df['close'].iloc[0])
df
Out[157]:
exchange date close log return
0 DAX 2015-07-28 11173.910156 0.000000
1 DAX 2015-07-27 11056.400391 -0.010572
2 DAX 2015-07-24 11347.450195 0.015411
3 DAX 2015-07-23 11512.110352 0.029818
</code></pre>
<p><strong>编辑</strong></p>
<p>如果是日志内部差异,那么可以使用<code>diff</code>简洁地执行此操作:</p>
<pre><code>In [161]:
df['log return'] = np.log(df['close']).diff()
df
Out[161]:
exchange date close log return
0 DAX 2015-07-28 11173.910156 NaN
1 DAX 2015-07-27 11056.400391 -0.010572
2 DAX 2015-07-24 11347.450195 0.025984
3 DAX 2015-07-23 11512.110352 0.014406
</code></pre>