Python:如何从整数中获得两个月之间的差异?

ema*_*max 3 python datetime pandas

我有一个df如下数据框:

df
    A    NUM_YYYYMM
0   a     201605
1   b     201602
2   c     201603
3   d     201601
Run Code Online (Sandbox Code Playgroud)

哪里有type(df['NUM_YYYYMM'])回报int.我想计算t0=201612列与列之间的差异df['NUM_YYYYMM'].所以:

df
    A    NUM_YYYYMM   deltaT
0   a     201605        7
1   b     201602       10
2   c     201603        9
3   d     201601       11
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 5

转换列to_datetime,然后转换为月周期to_period,Periodt0以下位置减去:

t0 = '201612'
t = pd.to_datetime(t0, format='%Y%m').to_period('m')

df['deltaT'] = t - pd.to_datetime(df['NUM_YYYYMM'], format='%Y%m').dt.to_period('m')
print (df)
   A  NUM_YYYYMM deltaT
0  a      201605      7
1  b      201602     10
2  c      201603      9
3  d      201601     11
Run Code Online (Sandbox Code Playgroud)

如果可能改变格式t0:

t = pd.Period('2016-12')
df['deltaT'] = t - pd.to_datetime(df['NUM_YYYYMM'], format='%Y%m').dt.to_period('m')
Run Code Online (Sandbox Code Playgroud)