我手头有一个数据集,其中有一列日期时间是字符串格式的,例如。

a = 'Tue Sep 22 1998 00:00:00 GMT+0000 (Coordinated Universal Time)'

a只是列中的一个值。
如果我在Azure Machine Learning Studio中使用元数据编辑器,它将无法工作,并且会抱怨它无法进行转换(从字符串到DateTime)。我想这和格式有关。所以我试着说:
a = str(a)[:10]+','+str(a)[10:15]
#'Tue Sep 22, 1998'

现在.NET当然可以进行转换了,我的意思是Convert.ToDateTime()这样的方法。然而,当我可视化Python脚本的输出时,我发现字符串已经被更改为“Tue Sep 22,1998 None”,这很奇怪。有人知道怎么回事吗?下面是python代码的摘录:
def azureml_main(dataframe1 = None, dataframe2 = None):

  dataframe1['timestamp'] = dataframe1['timestamp'].apply(lambda a: str(a)[:10]+','+str(a)[10:15])

  return dataframe1,

最佳答案

我使用Python进行日期格式规范化。在返回数据帧之前,必须更改为string,因为底层R将引发异常

def azureml_main(dataframe1 = None, dataframe2 = None):
    import pandas as pd
    dates = pd.to_datetime(dataframe1['DATE'])
    dates = dates.apply(lambda x: x.strftime('%Y-%m-%d'))
    dataframe1['DATE'] = dates
return dataframe1,

然后使用元数据编辑器将类型更改为DateTime

08-25 04:43