<p>表单示例数据似乎是<code>DatetimeIndex</code>,因此仅减去标量值:</p>
<pre><code>df = df.sub(273.15)
</code></pre>
<p>如果<code>time</code>是列:</p>
<pre><code>df = df.set_index('time').sub(273.15)
</code></pre>
<p>或者,如果第一列是<code>time</code>列:</p>
<pre><code>df.iloc[:, 1:] = df.iloc[:, 1:].sub(273.15)
</code></pre>
<p>300k行的性能:</p>
<pre><code>df = pd.concat([df] * 100000)
print (df)
In [170]: %timeit df.set_index('time').applymap(lambda value:value-273)
1.9 s ± 16.9 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
In [171]: %timeit df.set_index('time').sub(273.15)
95.6 ms ± 575 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
</code></pre>
<p>样本数据:</p>
<pre><code>df = pd.DataFrame({'time': [pd.Timestamp('1990-01-01 00:00:00'), pd.Timestamp('1990-01-01 01:00:00'), pd.Timestamp('1990-01-01 02:00:00')], 'Antwerp': [273.70395, 273.72702000000004, 273.47134], 'Busan': [279.31912, 279.94266, 280.65198], 'Colombo': [298.03195, 298.02042, 298.4031], 'Dalian': [268.422, 268.18445, 269.00925]})
print (df)
time Antwerp Busan Colombo Dalian
0 1990-01-01 00:00:00 273.70395 279.31912 298.03195 268.42200
1 1990-01-01 01:00:00 273.72702 279.94266 298.02042 268.18445
2 1990-01-01 02:00:00 273.47134 280.65198 298.40310 269.00925
</code></pre>