<pre class="lang-py prettyprint-override"><code>def find_nearest(series):
current_idx = series.loc["index"]
nearest_idx = np.abs(df["admin doses"] - series.loc["complete dosis"]).argmin()
day_diff = (days_in_dt[current_idx] - days_in_dt[nearest_idx]).days
return day_diff
# convert Day column to TimeStamps
days_in_dt = pd.to_datetime(df.Day, format="%y%m%d")
# the result
df["complete dosis"].reset_index().apply(find_nearest, axis=1)
</code></pre>
<pre><code>0 0
1 3
2 4
3 7
4 8
5 9
6 10
7 11
8 14
9 15
10 16
11 17
12 18
13 18
14 18
15 16
16 17
17 17
18 18
19 15
20 14
21 13
22 9
23 7
24 7
25 7
26 7
27 7
28 6
29 7
30 7
31 7
32 8
33 10
34 11
35 12
36 13
37 14
38 14
39 15
40 16
41 16
42 16
43 18
44 19
45 19
46 20
47 17
48 18
49 19
50 19
51 17
52 18
53 19
54 19
dtype: int64
</code></pre>
<p>我们<code>apply</code>使用一个函数,可以找出最接近的日差值。传递给函数的值的形式如下:</p>
<pre><code>index 8
complete dosis 4630
Name: 8, dtype: int64
</code></pre>
<p>这样,我们也可以得到它们的索引值,并在以后计算差值<code>reset_index</code>之前的<code>apply</code>将此索引信息提供给传递的序列</p>