擅长:python、mysql、java
<p>如果6个月应简化为6*30天,则使用带有<code>diff</code>的自定义lambda函数,按值和上次累计和进行比较:</p>
<pre><code>df['datesurv'] = pd.to_datetime(df['datesurv'], dayfirst=True)
df = df.sort_values(['id_police','datesurv'])
f = lambda x: (x.diff().dt.days < 30 * 6).cumsum()
df['occ'] = df.groupby('id_police')['datesurv'].apply(f)
print (df)
id_police id_sinistre datesurv occ
0 p123 s120 2018-01-01 0
1 p123 s121 2018-01-03 1
2 p123 s122 2018-05-05 2
3 p222 s123 2018-05-04 0
4 p222 s124 2018-12-02 0
5 p433 s125 2018-08-07 0
6 p433 s126 2018-09-08 1
7 p433 s127 2018-10-10 2
</code></pre>