df
A NUM_YYYYMM
0 a 201605
1 b 201602
2 c 201603
3 d 201601
其中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
解决方法:
将列to_datetime
转换为to_period
的月份周期,从周期中减去t0:
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
如果可以改变t0的格式:
t = pd.Period('2016-12')
df['deltaT'] = t - pd.to_datetime(df['NUM_YYYYMM'], format='%Y%m').dt.to_period('m')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。