<p>您可以使用<code>groupby</code>和<code>merge</code>的功能</p>
<pre><code>>>> import pandas as pd
>>> df = pd.DataFrame([['PersonC','5/15/2010',75000],['PersonC','7/3/2011',100000],['PersonB','3/5/2014',65000],['PersonB','3/1/2015',75000],['PersonB','3/1/2016',100000]],columns=['Employee','Date','Salary'])
>>> df['Date']= pd.to_datetime(df['Date'])
>>> df
Employee Date Salary
0 PersonC 2010-05-15 75000
1 PersonC 2011-07-03 100000
2 PersonB 2014-03-05 65000
3 PersonB 2015-03-01 75000
4 PersonB 2016-03-01 100000
>>> satrt_date = df.groupby('Employee')['Date'].min().to_frame().rename(columns={'Date':'Start Date'})
>>> satrt_date['Employee'] = satrt_date.index
>>> df = df.merge(satrt_date,how='left', on= 'Employee')
>>> df['Months From Start'] = df['Date']-df['Start Date']
>>> df['Months From Start'] = df['Months From Start'].apply(lambda x: x.days)
>>> df['Months From Start']= df['Months From Start'].apply(lambda x: (x/30) - (x/30)%6)
>>> df
Employee Date Salary Start Date Months From Start
0 PersonC 2010-05-15 75000 2010-05-15 0
1 PersonC 2011-07-03 100000 2010-05-15 12
2 PersonB 2014-03-05 65000 2014-03-05 0
3 PersonB 2015-03-01 75000 2014-03-05 12
4 PersonB 2016-03-01 100000 2014-03-05 24
</code></pre>
<p>在这里,您可以将<code>6</code>替换为一个名为<code>m</code>的变量,并为其分配任意值</p>