我有这个问题,我的df中的一列是以字符串形式输入的,但我想将它转换为python中的日期月末。例如,
Id Name Date Number
0 1 A 201601 5
1 2 B 201602 6
2 3 C 201603 4
“日期”列将年份和月份作为字符串。理想情况下,我的目标是:
Id Name Date Number
0 1 A 01/31/2016 5
1 2 B 02/29/2016 6
2 3 C 03/31/2016 4
我能够使用Endmonth和剪切字符串在excel上执行此操作,但是当我在python中尝试pd.to_datetime时,它没有工作。谢谢!
答案 0 :(得分:5)
我们可以使用MonthEnd
from pandas.tseries.offsets import MonthEnd
df.Date=(pd.to_datetime(df.Date,format='%Y%m')+MonthEnd(1)).dt.strftime('%m/%d/%Y')
df
Out[1336]:
Id Name Date Number
0 1 A 01/31/2016 5
1 2 B 02/29/2016 6
2 3 C 03/31/2016 4
答案 1 :(得分:2)
您可以使用PeriodIndex:
In [36]: df['Date'] = pd.PeriodIndex(df['Date'].astype(str), freq='M').strftime('%m/%d/%Y')
In [37]: df
Out[37]:
Id Name Date Number
0 1 A 01/31/2016 5
1 2 B 02/29/2016 6
2 3 C 03/31/2016 4