使用//
和%
Df ['月'],df ['年'] = df.Date/10000,df.Date % 10000
Df
出【 528 】:
年月 ID 日期
22019 2 2019
1 2 32019 3 2019
52019 5 2019 2 3
3 5 102019 10 2019
Divmod
Df ['月'],df ['年'] = np.divmod (df.Date,10000)
Df
年月 ID 日期
22019 2 2019
1 2 32019 3 2019
52019 5 2019 2 3
3 5 102019 10 2019
使用不改变原始数据帧分配
Df.assign (zip ([“月” 、 “年”) 、 np.divmod (df.Date,10000)
年月 ID 日期
22019 2 2019
1 2 32019 3 2019
52019 5 2019 2 3
3 5 102019 10 2019
使用:
S = pd.to _ date (df.pop ('date'),format = '% m % y') # 转换为日期时间,pop 删除 col
Df ['月',df ['年'] = s.dt.月,s.dt.年 # 提取月份和年份
打印 (df)
年 ID 月
2 2019
1 2 3 2019
2 2019
3 5 10 2019
Str.精华
可以处理弄清楚这个月是 1 还是 2 位数的棘手部分。
(Df [“日期”)。
。提取 (r '^ (?P\ D {1,2}) (?P\ D {4}) $ ')
。(Int))
年月
2019 2
1 3 2019
2 2019
2019 10
如果保证你的数字只有 5 或 6 位数字,你也可以使用字符串切片 (如果没有,使用Str.精华
以上):
U = df [“日期”]。
Df ['月'] 、 df ['年'] = u.str [:-4] 、 u.str [-4:]
Df
年月 ID 日期
22019 2 2019
1 2 32019 3 2019
52019 5 2019 2 3
3 5 102019 10 2019