<p>好吧,也许不是处理这样的问题的最优雅的方法,但这样可以完成任务:</p>
<pre><code>import numpy as np
import pandas as pd
df = pd.read_csv("stack.csv", index_col=0)
df["exchTstamp"] = df["exchTstamp"].apply(pd.to_datetime)
def getTime(base_idx, offset=0.01):
time_delta, i = 0, 0
while time_delta < offset:
time_delta = (df["exchTstamp"][base_idx + i] - df["exchTstamp"][base_idx]).total_seconds()
i += 1
if base_idx + i == len(df.index):
return(np.nan)
return(df["exchTstamp"][base_idx + i])
df["testTime"] = [getTime(j) for j in range(len(df.index))]
</code></pre>
<p>这就给了你:</p>
<pre><code>df.head(10)
exchTstamp seqNum rev10mSecAvg prev1SecAvg imbRegime testTime
0 2019-08-14 09:15:00.022991 199 0.000000 0.000000 0 2019-08-14 09:15:00.033136
1 2019-08-14 09:15:00.022995 200 -0.166667 -0.166667 3 2019-08-14 09:15:00.033136
2 2019-08-14 09:15:00.022999 201 -0.277778 -0.277778 2 2019-08-14 09:15:00.033136
3 2019-08-14 09:15:00.023003 202 -0.333333 -0.333333 2 2019-08-14 09:15:00.033136
4 2019-08-14 09:15:00.023007 203 -0.386667 -0.386667 2 2019-08-14 09:15:00.033136
5 2019-08-14 09:15:00.023011 204 -0.422222 -0.422222 0 2019-08-14 09:15:00.033136
6 2019-08-14 09:15:00.023015 205 -0.447619 -0.447619 0 2019-08-14 09:15:00.033136
7 2019-08-14 09:15:00.023018 206 -0.475000 -0.475000 0 2019-08-14 09:15:00.033136
8 2019-08-14 09:15:00.023023 207 -0.422222 -0.422222 1 2019-08-14 09:15:00.033136
9 2019-08-14 09:15:00.023027 208 -0.380000 -0.380000 3 2019-08-14 09:15:00.033136
</code></pre>