使用Python将一组数字转换为日期格式
问题描述:
我有一个名为'train'的数据框,其列ID以非常不寻常的方式表示'date'。对于例如ID中的某些条目:使用Python将一组数字转换为日期格式
For example, the value of ID 2013043002 represents the date 30/04/2013
02:00:00
前4位数字代表年份,后2位数字代表月份和日期。最后两位数字代表时间。
所以我想转换成适当的日期时间格式来执行时间序列分析。
答
使用to_datetime
与参数format
- 检查http://strftime.org/:
df = pd.DataFrame({'ID':[2013043002,2013043002]})
df['ID'] = pd.to_datetime(df['ID'], format='%Y%m%d%H')
print(df)
ID
0 2013-04-30 02:00:00
1 2013-04-30 02:00:00
print(df['ID'].dtype)
datetime64[ns]
答
使用进行日期时间操作。
datetime.strptime(d,"%Y%m%d%H").strftime("%d/%m/%Y %H:%M:%S")
答
首先,如果你是要去总是相同的输入风格的标识,你可以用绳子或数字格式化打...
Id = 2013043002
Year = Id[0:3]
Month = Id[4:5]
Day = Id[6:7]
Time= Id[-2:-1]
DateFormat = "{}-{}-{}".format(Day,Month,Year)
TimeFormar = "%d:00:00"%Time
Print (DateFormat)
Output:
04:30:2013
然后,您可以将它包装到一个函数中,并通过循环传递每个Ids并管理您的数据。
当然,如果您不知道以前的ID包含格式,您应该使用其他时间模块选项,并管理字符串格式化以按照您需要的顺序显示。
答
通过使用模块的日期时间,你可以做到这一点很容易与功能strptime:
my_date = datetime.datetime.strptime(ID, "%Y%m%d%H")
“%Y%M%d%H” 是你日期的格式:%Y是年,%m是月份(0填充),%d是日期(0填充),%H是小时(24H,填充0)。有关更多信息,请参阅http://strftime.org/。
那么你有什么尝试?您只需提供格式字符串,与其他日期时间相同。 – roganjosh
非常感谢@jezrael。完成! :) –
不客气!你能接受解决方案吗?见上面的评论。谢谢。 – jezrael